2019年7月29日 星期一

亂數1~10每次都不一樣


































#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(0));
    int i,j,n[10];//所以要把10次陣列存起來
    for(i=1;i<=10;i++)
    {
        do
        {
          n[i-1]=rand()%10+1;//產生1~10亂數
//n[從0號開始編],我們把他記來,然後要做檢查
          for(j=1;j<i;j++)//不想讓亂數有重覆
//第五次,檢查1~4次有沒有出現過,再丟一次就可能產
//生不一樣的數字
          {
            if(n[i-1]==n[j-1])
            {
                break;//結束for loop
            }
          }
        }while(j!=i);
//如果已經做過了,至少做一次,重覆繼續丟,
//沒有出現過,繼續印下一輪的i
//我用for去判斷,用if檢查
//例如:i是5存在n[4],我只要檢查前面1~4即可
//j要去比對,從1開始比是否有出現過
//i跟j(都是從1開始編,目前10個中的第幾個)都是代表第幾個,n是從第0個開始編
//兩個值一樣,代表值已經出現過,就要繼續exe
//如果不成立,while就跳出
        printf("%d ",n[i-1]);
    }
    printf("\n");
    return 0;
}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...