2017-05-24 4 views
-6

6番の番号が10-100で、5番の番号が1-1 の間です。新しい番号の生成について読んだ記事は、何とか複雑に適用されていました最初の配列パラメーターのインデックスとしてrand()を使用した後、乱数を見つけることができたが、問題があるので、これらの数を繰り返して2次元配列にすることで、新しい簡単な方法を作りました私は後でそれらを使用したいので、生成された数値を配列に入れたいと思います。乱数を発生させる新しい方法ですが、

あなたが戻って、文法的に正しい方法ながらとしてのループを実行する方法のためにCで書籍を再読み込みしなければならない簡単な方法

include<sys/time.h> 
#include<stdio.h> 
#include<stdio.h> 
#include<conio.h> 
#include<stdlib.h> 
#include<time.h> 
#include<ctime> 
#define max 1000 

int main() 
{  
    int o, gr1num1[max][1] ,n=6,q[max] ,i = 0, gr2num5[max][5]; 

    while(1) 
    {  
     i++; 
     gr2num5[i][4] = rand() % 10+1 ; 
     if(i == 1000) 
      break; 
    } 

    if (gr2num5 [i][4]!=0) 
     srand(time(NULL)); 

    printf("\ngroup 2 numbers %d ",gr2num5 [rand()%500][4]); 
    printf("\ngroup 2 numbers %d ",gr2num5 [rand()%500][4]); 
    printf("\ngroup 2 numbers %d ",gr2num5 [rand()%500][4]); 
    printf("\ngroup 2 numbers %d ",gr2num5 [rand()%500][4]); 
    printf("\ngroup 2 numbers %d ",gr2num5 [rand()%500][4]); 

    printf(" \n\n\n /// %d /// ",o); 

    while(1) 
    {  
     i++; 
     gr1num1[i][1] = rand() % 100+10; 
     if(i == 1000) 
      break; 
    } 

    printf("group 1 number %d",gr1num1 [rand()%500][1]); 
} 
+1

は説明...何? –

+0

生成された数値を配列に入れる方法 –

+0

Asides:1): 'rand'の最初の使用の前に' srand' *を呼び出すべきです。 2) '#define max 1000'を持つ場合は' if(i == 1000) 'の代わりに使うべきです。 –

答えて

0

まずオフに説明している場合、私は感謝するよ、あなたそれらのwhileループを使用しているのは正しくありません。

これは最初のwhileループの外観です。配列のインデックスは0

i=0; 
while(i<max) 
{ 
    gr2num5[i][4]= rand() % 10+1 ; 
    i++; 
} 

で始まり、しかし、それは初期化、条件付きと増分を包み込むよう本当にそれが良いこのようなforループとして行われることになるので、iの増分は、ループの終わりに起こります1つのきちんとしたパッケージで。最初の部分 - の初期化は、 - あなたの二while forループとして重要であり、iのあなたの値は、0

for(i=0;i<max;i++) 
{ 
    gr2num5[i][4]= rand() % 10+1 ; 
} 

にそれをリセットしないと、まだ1000年ですが、あなたはあなたのため、5つの値後にしています2つのループを互いに入れ子にして、gr2num5配列をこのように配置する必要があります。

for(i=0;i<max;i++) 
{ 
    for(j=0;j<5;j++) 
    { 
     gr2num5[i][j]=rand() % 10+1 ; 
    } 
} 

(NB:あなたはi側に沿って上部にjを定義します)

関連する問題