2014-01-12 3 views
0

2D 배열을 만든 다음 2D 배열의 요소 합계를 더하는 작업을 수행하는 간단한 프로그램을 작성하려고합니다. 여기에 지금까지 내 코드는 다음과 같습니다2D 배열 오류 (요소 합계)

#include <iostream> 
#include <stdio.h> 

int main() 
{ 
    int array [20][20]; 
    int i, j; 
    int num_elements; 
    float sum; 

    for (i=0; i<num_elements; i++) 
    { 
     sum = sum + array[i]; 
    } 

    return(sum); 

    // output each array element's value 
    for (i = 0; i < 20; i++) 
    { 
     for (j = 0; j < 20; j++) 
     { 
     printf("a[%d][%d] = %d\n", i,j, array[i][j]); 
     } 
    } 

    system ("PAUSE"); 
    return 0; 
} 

내가 그것을 무너 뜨리는 기능을 사용하도록 프로그램을 수정하는 것입니다 나의 다음 질문을 시작하기 전에이 프로그램을 작성해야합니다.

내가 다음라고하는 팝업 오류가 있습니다

error C2111: '+' : pointer addition requires integral operand 

코드

sum = sum + array[i]; 

여기서 문제의 또한 다음의 peice를이 식을 산술 또는 범위가 지정되지 않은 열거 형이 있어야합니다 말한다.

아무도 도와 줄 수 있습니까? 내가 어디로 잘못 가고 있는지 설명. 온라인으로 문제를 조사했지만 문제를 해결할 수는 없습니다. 문제를 해결하려고하면 오류가 더 많이납니다. 다른 사람이 코드 예를 들어 주시면 감사하겠습니다.

새 코드 : 작동합니다. 합계를 인쇄하면됩니다.

#include <iostream> 
#include <stdio.h> 

int main() 
{ 
    int array [3][5] = 
    { 
     { 1, 2, 3, 4, 5, }, // row 0 
     { 6, 7, 8, 9, 10, }, // row 1 
     { 11, 12, 13, 14, 15 } // row 2 
    }; 

    int i, j=0; 
    int num_elements=0; 
    float sum=0; 

    for (i=0; i<num_elements; i++) 
    { 
     sum = sum + array[i][j]; 
    } 

    // output each array element's value 
    for (i = 0; i < 3; i++) 
    { 
     for (j = 0; j < 5; j++) 
     { 
     printf("a[%d][%d] = %d\n", i,j, array[i][j]); 
     } 
    } 

    system("PAUSE"); 
    return(sum); 
} 

답변

1

배열을 2 차원으로 정의했습니다. 그러나 루프 안에서

for (i=0; i<num_elements; i++) 
{ 
    sum = sum + array[i]; 
} 

당신은 그것을 1 차원으로 사용합니다. 그러나 실제로는 1 차원 배열에 대한 포인터로 작업합니다. 그리고 컴파일러는 thsi 오류에 대해보고합니다.

또한 변수 num_elements와 변수 sum이 초기화되지 않았습니다. 배열의 값이 입력 된 경우 그리고 아무도 볼 수 없습니다 :

또한이 return 문은 아무 의미

return(sum); 
이 없습니다

따르는 행동의 당신의 계획 :.

이 프로그램은 작동
1. Enter values for elements of the array 
2. Print out the entered array 
3. Calculate the sum of all elements 
4. Print out the sum. 
+0

, 내가 가진 배열의 값으로 프로그램을 변경했습니다. 그러나 배열의 합계를 인쇄 할 수 없습니다. 도와 드릴까요? 업데이트 된 코드가 위에 있습니다. 나는 다음 줄을 추가했다 : printf ("a [% d] [% d] = % d \ n", sum); – user1582575

+0

미안하지만 한 가지 값을 출력하는 데 문제가 될 수 있는지 이해할 수 없습니다. –