2013-04-13 3 views
0

최근에 C 언어를 배우기 시작했고 사용자가 제공 한 값으로 정수를 선언 할 방법이 있는지 알고 싶었습니다. 예를 들어 사용자가 3을 입력합니다. 세 개의 정수 (예 : a, bc)를 생성하려고합니다. 사용자가 5를 입력하면 a, b, c, d, e을 만들고 싶습니다.사용자 요청에 의한 정수의 생성

그렇게 할 방법이 있습니까?

+7

'array'를 사용할 수 있습니까? –

+2

이후에 정수로 무엇을 할 것입니까? * 당신은 당신이 요구하는 것을 할 수는 없지만 궁극적으로 원하는 것을위한 간단한 해결책이 있을지 모른다. * – pmg

답변

0

필요한 것은 정수 배열입니다. "count"값을 받으면 "int"유형의 항목 "count"의 배열을 동적으로 할당해야합니다. 자세한 내용은

것은 malloc() 기능에서 봐 주시기 바랍니다 : 당신은 하나의 변수가 정의되지 않은 수를 선언 할 수 없기 때문에 배열을 만들고 싶어 http://linux.die.net/man/3/malloc

1

. 초보자이기 때문에 내가 원하는 경우 당신이 컴파일 할 수있는 완전한 답변을 줄 것이다 :

#include<stdio.h> 
#include<stdlib.h> 

int main(){ 
    int* arr,number,i; 
    printf("Give number value: "); 
    scanf("%d",&number); 
    arr = malloc(sizeof(*arr) * number); // after the comment, it safeguards the code 
    for(i=0;i<number;i++){ 
     printf("%d ",i); 
    } 
    return 0; 
} 

편곡는 포인터 변수와 변수의 INT의 * 번호의 크기가 배열로 사용 네가 원해.

+2

'arr = (int *) malloc (sizeof (int) * number);''arr = malloc (sizeof * arr) * number); ' –

+0

배열에서 int 값을 원했던 까닭에 왜 더 좋을까요? – Edeph

+1

질문을 이해할 수 있는지 잘 모르겠습니다. A)'malloc'의 반환 값을 C에 던지지 않기 때문에 더 낫습니다. 암시 적 int를 허용하는 오래된 컴파일러에서 오류를 숨길 수 있습니다. 숙련 된 C 프로그래머는'malloc'의 리턴 값을 던지지 않습니다. B) 당신의 코드를 조금 보호하기 때문에'sizeof (int)'대신'sizeof (* some_ptr)'를 사용한다. 미래에'some_ptr'의 타입이 바뀌면'sizeof' 파트도 바꿀 필요가 없습니다. 같은 효과가 있습니다. 컴파일러는'* some_ptr' 식의 타입을 알고 있습니다. –

0

나는 이것을 쉽게 만들 것이다.

만들 수있는 것은 배열입니다. 배열은 기본적으로 하나의 이름 안에 저장된 요소의 범위입니다. 귀하의 예제를 위해 배열을 만드는 방법/사용하는 방법을 모르는 경우 여기에 예제가 있습니다.

int main (void){ 
int i; //counter 
int totalIntegers 
int arrayVariableName[100]; //array that can store any amount(100 for this case) 
          //of variables inside. 
printf("Enter total amount of variables"); 
    scanf("%d", &totalIntegers); //collect what the user types, pretend you type 5 

for(i=0;i<totalIntegers;i++){ //this will loop 5 times from same example. 
   printf("enter a number: "); 
    scanf("%d",&arrayVariableName[i]); //will store numbers in array 0(which 
             // is holding the integer inside a), 
             // array 1(holding b), array 2(holding c)  
             //array 3(holding d), array 4(holding e). 
    } 

} 

배열 및 for 루프를 사용하면 사용자가 여러 번 번호를 펀치 할 수있는 총량을 설정할 수 있습니다. 예를 들어 5의 내부에 7을 입력하면 7 개의 변수 (a, b, c, d, e, f, g)를 보유 할 수 있습니다. 정수를 100 개 이상 만들려는 경우 배열 선언 내부에서 변경하십시오. 당신이 원하는 유일한 금액으로 한계를 설정하는 방법이 있습니다, 위의 대답은 당신을 보여줍니다, 그것을 참조하십시오.

자세히 알아 보려면 간단하게 YouTube에서 "C의 배열 자습서"를 검색하십시오.

+1

그는 동적 할당을 사용하는 것이 좋습니다. 사용자가 값> 100을 입력하면 예제가 UB가됩니다. –