我想逐行添加2D数组的元素,然后我想要存储在另一个数组中的总和。 Like ::一个3行3列的数组.. {1,2,3} => 6,{2,3,4} => 9,{5,6,7} => 18现在我想存储值(6,9,18)另一个数组。我该怎么办?我只能总结行。我应该使用malloc吗?请帮忙。
#include<stdio.h>
void main(){
int i,j,k,sum=0;
int array[3][3]={
{1,2,4},
{4,5,6},
{7,8,9}
};
int array2[k];
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
sum=sum+array[i][j];
}
printf("sum is %d in row %d in array1 \n \n",sum,i);
sum=0;
}
}
答案 0 :(得分:0)
int array2[3];
array2[i]=sum
您可以将3提取为:
#define SIZE 3
并在需要的地方使用它。
答案 1 :(得分:0)
如果您知道,您的数组恰好包含3行,则无需使用任何malloc
。只需像这样声明结果数组:int array2[3]
然后将这些总和存储在这个数组中:array2[i] = sum;
(在内部循环之后,其中j
是迭代器)。为了使您的代码更具可预测性,在计算总和时,在内循环之前将sum
设置为零。
答案 2 :(得分:0)
源数组是固定大小的,因此结果数组也可以。
int array2[3];
for(i=0;i<=2;i++){
array2[i]=0;
for(j=0;j<=2;j++){
array2[i]+=array[i][j];
}
printf("sum is %d in row %d in array1 \n \n",array[i],i);
}
答案 3 :(得分:0)
你必须记住,你必须验证数组的大小 常量或使用malloc,可以使用此代码。
void main(){
int i,j,k,sum=0;
int array[3][3]={
{1,2,4},
{4,5,6},
{7,8,9}
};
int array2[3];
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
sum=sum+array[i][j];
}
array2[i] = sum ;
sum = 0 ;
sum=0;
}
for(i=0;i<=2;i++){
printf("sum is %d in row %d in array1 \n \n",array2[i],i);
}
}