최근에 C 언어를 배우기 시작했고 사용자가 제공 한 값으로 정수를 선언 할 방법이 있는지 알고 싶었습니다. 예를 들어 사용자가 3을 입력합니다. 세 개의 정수 (예 : a
, b
및 c
)를 생성하려고합니다. 사용자가 5를 입력하면 a
, b
, c
, d
, e
을 만들고 싶습니다.사용자 요청에 의한 정수의 생성
그렇게 할 방법이 있습니까?
최근에 C 언어를 배우기 시작했고 사용자가 제공 한 값으로 정수를 선언 할 방법이 있는지 알고 싶었습니다. 예를 들어 사용자가 3을 입력합니다. 세 개의 정수 (예 : a
, b
및 c
)를 생성하려고합니다. 사용자가 5를 입력하면 a
, b
, c
, d
, e
을 만들고 싶습니다.사용자 요청에 의한 정수의 생성
그렇게 할 방법이 있습니까?
필요한 것은 정수 배열입니다. "count
"값을 받으면 "int
"유형의 항목 "count
"의 배열을 동적으로 할당해야합니다. 자세한 내용은
것은 malloc()
기능에서 봐 주시기 바랍니다 : 당신은 하나의 변수가 정의되지 않은 수를 선언 할 수 없기 때문에 배열을 만들고 싶어 http://linux.die.net/man/3/malloc
. 초보자이기 때문에 내가 원하는 경우 당신이 컴파일 할 수있는 완전한 답변을 줄 것이다 :
#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의 * 번호의 크기가 배열로 사용 네가 원해.
'arr = (int *) malloc (sizeof (int) * number);''arr = malloc (sizeof * arr) * number); ' –
배열에서 int 값을 원했던 까닭에 왜 더 좋을까요? – Edeph
질문을 이해할 수 있는지 잘 모르겠습니다. A)'malloc'의 반환 값을 C에 던지지 않기 때문에 더 낫습니다. 암시 적 int를 허용하는 오래된 컴파일러에서 오류를 숨길 수 있습니다. 숙련 된 C 프로그래머는'malloc'의 리턴 값을 던지지 않습니다. B) 당신의 코드를 조금 보호하기 때문에'sizeof (int)'대신'sizeof (* some_ptr)'를 사용한다. 미래에'some_ptr'의 타입이 바뀌면'sizeof' 파트도 바꿀 필요가 없습니다. 같은 효과가 있습니다. 컴파일러는'* some_ptr' 식의 타입을 알고 있습니다. –
나는 이것을 쉽게 만들 것이다.
만들 수있는 것은 배열입니다. 배열은 기본적으로 하나의 이름 안에 저장된 요소의 범위입니다. 귀하의 예제를 위해 배열을 만드는 방법/사용하는 방법을 모르는 경우 여기에 예제가 있습니다.
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의 배열 자습서"를 검색하십시오.
그는 동적 할당을 사용하는 것이 좋습니다. 사용자가 값> 100을 입력하면 예제가 UB가됩니다. –
'array'를 사용할 수 있습니까? –
이후에 정수로 무엇을 할 것입니까? * 당신은 당신이 요구하는 것을 할 수는 없지만 궁극적으로 원하는 것을위한 간단한 해결책이 있을지 모른다. * – pmg