gpt4 book ai didi

c - 我编写了一个程序,提示用户输入 5x5 数组并显示行和列的总和。有什么想法我可以如何让它变得更好吗?

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

第一篇文章!

所以我正在看王者之书学习C编程。我正在读第 8 章,数组。书中有一个问题是这样的:

Write a program that reads a 5x5 array of integers and then prints the row sums and the column sums.

Example:

Enter row 1 : 1 1 1 1 1

enter row 2 : 1 1 1 1 1

enter row 3 : 1 1 1 1 1

enter row 4 : 1 1 1 1 1

enter row 5 : 1 1 1 1 1

Sum of rows : 5 5 5 5 5Sum of columns : 5 5 5 5 5

这就是我得到的。该程序可以正常工作,但有一个错误:它不会提示用户输入下一行。用户需要一次输入所有数字。

#include <stdio.h>
#define N 5
int main (void)

{
int z[N][N] ;
int a,b,d,c= 0,e=0,f=0,g=0,h=0,c2= 0,e2=0,f2=0,g2=0,h2=0 ;

printf("enter rows\n");

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

for (d=0; d<N; d++)

{
c += z[d][0];
e += z[d][1];
f += z[d][2];
g += z[d][3];
h += z[d][4];


}
for (d=0; d<N; d++)

{
c2 += z[0][d];
e2 += z[1][d];
f2 += z[2][d];
g2 += z[3][d];
h2 += z[4][d];


}
printf("total of rows is %d %d %d %d %d\n", c,e,f,g,h);
printf("total of columns is %d %d %d %d %d\n", c2,e2,f2,g2,h2);

/*

for (b=0; b<N; b++)
{
for (a=0; a<N; a++)
printf("%d", z[a][b]);
{
printf("\n");
}
}
*/
}

主要问题是:如何更有效地添加数字?

最佳答案

您无法更有效地添加数字(事实上,您可以,但您不想想要这样做,这是巨大的不成熟的优化)。

但是,您可以简化您的程序:

for (d=0; d<N; d++)

{
c += z[d][0];
e += z[d][1];
f += z[d][2];
g += z[d][3];
h += z[d][4];


}
for (d=0; d<N; d++)

{
c2 += z[0][d];
e2 += z[1][d];
f2 += z[2][d];
g2 += z[3][d];
h2 += z[4][d];


}

// becomes

int sumrows[N] = {}, sumcols[N] = {};
for (i = 0; i < N; ++i) {
for (d = 0; d < N; ++d)
sumrows[i] += z[d][i];
sumcols[i] += z[i][d];
}
}

关于您的错误,您可以在第一个循环中使用printf:

printf("enter rows\n");

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

// becomes

for (b = 0; b < N; ++b) {
printf("Enter row %d", b + 1);
for (a = 0; a < N; ++a) {
scanf("%d", &z[a][b]);
}
}

另请注意,在 [x][y] 中建立索引时,在 [y][x] 中建立索引通常被认为是最佳实践。虽然这影响不大,但可能会让习惯这种约定的开发人员感到不安。

关于c - 我编写了一个程序,提示用户输入 5x5 数组并显示行和列的总和。有什么想法我可以如何让它变得更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266635/

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