[英]2D array print out sum of elements
我編寫了一個程序,用於2D數組中的元素總和並打印出總和。
到目前為止我的代碼:
#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];
}
/*for(i=0; i<num_elements; i++)
{
printf("%d ", array[i][j]);
}*/
// printf("a[%d][%d] = %d\n", sum);
// 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 0;
}
我可以打印出每個陣列中的元素。 但我想打印出元素的總和。 我在評論部分看到了一個,但它沒有用。 有人可以幫忙嗎?
您只對矩陣的第一列求和:
sum = sum + array[i][j];
其中j設置為0。
使用雙循環:
for ( i = 0; i < 3; i++ )
{
for ( j = 0; j < 5; j++ )
{
sum+=array[i][j];
}
}
這個循環是問題所在:
int i, j=0;
int num_elements=0;
float sum=0;
for (i=0; i<num_elements; i++)
{
sum = sum + array[i][j];
}
它根本不會執行,因為i<num_elements
永遠不會為真 - num_elements
為0.最重要的是,你不要將j
設置為0。
你需要一個雙循環,就像你以后使用的那樣:
for ( i = 0; i < 3; i++ )
{
for ( j = 0; j < 5; j++ )
{
sum += array[i][j];
}
}
試試這個2D陣列中所有元素的總和 -
for ( i = 0; i < 3; i++ )
{
for ( j = 0; j < 5; j++ )
{
sum=sum+array[i][j];
}
}
首先,您已將num_elements初始化為零。 所以你什么都得不到。
另外,為此,
您需要一個雙循環來打印所有元素的總和。 還要為每行中的元素數聲明其他變量,如row_num (行數)和element_num ,然后使用此代碼。
for(i=0; i<row_num; i++)
{
for(j=0; j<element_num; j++)
{
sum = sum + array[i][j];
}
}
作為存儲在連續存儲器中的數組,可以僅使用一個循環。
for (int i=0; i<(3*5); i++) <-- 3*5 is num_of_colums*num_of_rows.
{
sum = sum + *(array[0]+i);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.