2014-01-12 59 views
0

我想寫一個簡單的程序,創建二維數組,然後執行一個任務,在該二維數組中添加元素的總和。這是我到目前爲止的代碼:二維數組錯誤(元素的總和)

#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

您將該數組定義爲二維。但是在循環中

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

您將其用作一維。但實際上,您可以使用指向一維數組的指針進行操作。編譯器報告有關錯誤。

此外,既沒有變量num_elements也沒有可變和被初始化。沒有人看到這裏都進入了數組值:)

而且這個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

我很抱歉,但我不明白輸出一個值可能是什麼問題。 –