无法将数据存储在数组中

时间:2016-09-16 20:19:08

标签: c

我想逐行添加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;
    }
}   

4 个答案:

答案 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);
   }

   }