2016-12-09 11 views
0

안녕하세요, 사용자 입력을 요구하지 않고 randnumber를 저장하는 방법이 있는지 알고 싶습니다.C 난수 배열 배열

#include<stdio.h> 
#include<stdlib.h> 
void main() { 
    int randnum; 
    int i=0; 
    int storerand[16]; // storing randnumbers 
    randnum=rand(); 

     while(i <16){ 
      storerand[i]=randnum; // why is this not storing 16 rand number how can i store 16 randnumbers 
     i++; 
     } 
     return 0; 
+0

귀하의 루프 카운터'i' 코드에서 어디 증가 할 나타나지 않습니다. 루프에 대해 이것이 무엇을 의미한다고 생각하십니까? – Arc676

+0

16 개의 값이 정확히 같은 난수가되도록 하시겠습니까? 아니면 각 슬롯마다 새로운 난수를 생성 하시겠습니까? – paddy

+0

@paddy 다른 숫자 일 수 있습니다. –

답변

2

C에서 난수를 생성하는 쉬운 방법은 <stdlib.h>와 함께 제공되는 rand() 기능을 사용하는 것입니다 :이 예에서 우리는 예를 들어 사용자가 randnums의 사용자에게 메시지를 표시하지 않고 배열 storerand 16 randnumbers을 저장할. 시간 라이브러리를 시드하지 않으면 프로그램을 실행할 때마다 동일한 난수가 수신됩니다.

#include <stdlib.h> 
#include <time.h> 

int main (void) { 
    //Uses system time to seed a proper random number. 
    srand(time(NULL)); 
    //rand() generates a random integer 
    int a = rand(); 
    //Use mod to restrict range: 
    int b = rand()%5; //random integer from 0-4 
    return 0; 
} 

while 루프 내에서 색인 i를 증가시켜야합니다.

randnum=rand(); 

을 그리고 당신은 당신의 배열의 각 슬롯에 값을 넣어 루프를 실행

while(i < 16) { 
    storerand[i] = rand(); 
    i++; 
} 
1

은 현재 임의의 값으로 randnum을 초기화. 즉, 각 슬롯에 같은 값을 넣었습니다.

while(i <16){ 
    storerand[i]=randnum; 
    i++; 
} 

이 솔루션은 루프 주위 때마다 rand()를 호출하는 것입니다 :

for(i = 0; i < 16; i++) { 
    storerand[i] = rand(); 
}