gpt4 book ai didi

c - 总结c中的行,显示列中的垃圾数字

转载 作者:行者123 更新时间:2023-11-30 16:57:13 25 4
gpt4 key购买 nike

我正在尝试对 C 中的列进行求和。我的代码仅添加第一列的总和,例如,如果是 2x2 数组,则它仅添加第一列,但对于其余的列,它会显示奇怪的数字。这就是我到目前为止所得到的。我还没有为行编写代码。感谢您的帮助。

#include <stdio.h>

int main(){


printf("Enter the number of columns");
int i;
scanf("%d", &i);
printf("Enter the number of rows");
int y;
scanf("%d", &y);

int r[i][y];
int a;
int b;
int columntotal[i],rowtotal[y];

for (a=0; a<i; a++){
for (b=0; b<y; b++){
scanf("%d",&r[a][b]);
}
}


//printing
for(a=0;a<i;a++)
{
for(b=0;b<y;b++){

printf("\t%d", r[a][b]);

}
printf("\n");
}




for (a=0;a<i;a++){
for (b=0;b<y;b++){
columntotal[a]=columntotal[a]+r[a][b];

}
}
for (a=0;a<i;a++){
printf("%d\n", columntotal[a]);
}

return(0);
}

最佳答案

据我记得动态行,在创建数组时进行列分配在 C 中是不可能的。所以你的这个语句 int columntotal[i],rowtotal[y]; 将不起作用,除非我, y 是一个常量变量,即 #define i,y,etc ,这不属于您的情况。

其次,您正在迭代未正确声明的 columntotal 数组。您可以利用动态内存分配将 block 数分配给columntotal 数组,然后在迭代时用列总和填充它。

int *columntotal= malloc(i * sizeof (int));
for (a=0;a<i;a++){
for (b=0;b<y;b++){
columntotal[a]=columntotal[a]+r[a][b]; //r is your 2D array

}
}

关于c - 总结c中的行,显示列中的垃圾数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com