2014-08-28 3 views
0

나는이 주제에 대해 한 시간 이상 연구를 해왔으므로 나는 운이 없었으므로 나는이 질문을 여기서하기로 결정했다. 나는 프로그램에 숫자를 입력 한 후 배열에서 10 개의 다른 숫자의 합을 찾는 방법을 알아 냈습니다. 예를 들어, 10 개의 다른 숫자를 입력하라는 메시지가 표시되며 배열에 입력 한 후에 모두 더합니다. 여기에 코드가 있습니다. 상단 부분은 기능입니다. 맨 아래 부분은 main()의 부분입니다. 어떤 도움이라도 크게 감사 할 것입니다.배열에있는 숫자의 합 찾기 C

void addNum(int z[]) 
{ 
    int sum = 0; 
    int i; 

    //scanf("%d", &z[i]); 

    sum = sum + z[i]; 

    printf("\nThe sum of numbers you entered is %d.\n", sum); 
} 

...........

int z[10]; 
int i; 
int num = 0; 

printf("Please enter 10 different numbers: \n"); 

for(i = 0; i < 10; i++) 
{ 
    z[i] = num; 
    scanf("%d", &num); 
} 

printf("\nThe numbers you entered were: "); 

for (i = 1; i <= 10; i++) 
{ 
    printf("%d ", z[i]); 
} 
printf("\n"); 

//scanf("%d", z[i]); 

addNum(z[i]); 

답변

5

당신은 배열과 주에서 함수에 배열의

void addNum(int z[], int sizeOfArray) 
{ 
int sum = 0; 

//scanf("%d", &z[i]); 
for(int i = 0; i < sizeOfArray; i++){ 
    sum += z[i]; 
} 
printf("\nThe sum of numbers you entered is %d.\n", sum); 
} 

패스를 추가해야 크기

addNum(z,10); 
+0

작동합니다! 당신이 쓴 코드로, 나는 이것을 사용하고 1에서 9까지의 숫자를 입력했지만 46이 아닌 45를 출력한다. – Cam9191

+1

@ Cam9191 : i ∈ {1.9}에 대한 Σi는 45이므로 (1 + 2 = 3, 3 + 3 = 6, 6 + 4 = 10, 10 + 5 = 15, 15 + 6 = 21, 21 + 7 = 28; 28 + 8 = 36; 36 + 9 = 45), 46 세가 놀랍습니다. –

1

코드에서 참조 용으로 전달하십시오. 값으로 전달하지 마십시오.

"addNum (z [i])"를 호출하면 i는 11이고 전달하는 항목은 z [11]이며 처음에는 가비지지만 어떤 변수의 값만 전달합니다 너는 원했어.

전달하고자하는 것은 "z"또는 "& z [0]"배열의 주소입니다. 배열의 크기와 함께 함수는 배열의 멤버 변수 수를 알고 있습니다.

+0

간단한 설명을 해주셔서 감사합니다. – Cam9191