gpt4 book ai didi

c - 关于优化这个 C 程序的建议?

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:53 24 4
gpt4 key购买 nike

想知道是否有办法缩小这个程序。我不喜欢 5 对 printf/scanf 的外观,但我想不出使用 for 循环来缩小它的方法。我无法将 scanf 调用与 printf 调用匹配。

for(i = 1; i < 6; i++)
printf("Enter row %d", i);

这部分很简单,但是,对数组的 scanf 调用和赋值让我感到困惑。

//Sums row and column
#include <stdio.h>

int main(void) {

int a[5][5];
int row[5] = {0}, col[5] = {0};
int i, j;

printf("\t--Enter a 5x5 chart--\n");
printf("\tEnter row #1: ");
scanf("%d %d %d %d %d", &a[0][0], &a[0][1], &a[0][2], &a[0][3], &a[0][4]);

printf("\tEnter row #2: ");
scanf("%d %d %d %d %d", &a[1][0], &a[1][1], &a[1][2], &a[1][3], &a[1][4]);

printf("\tEnter row #3: ");
scanf("%d %d %d %d %d", &a[2][0], &a[2][1], &a[2][2], &a[2][3], &a[2][4]);

printf("\tEnter row #4: ");
scanf("%d %d %d %d %d", &a[3][0], &a[3][1], &a[3][2], &a[3][3], &a[3][4]);

printf("\tEnter row #5: ");
scanf("%d %d %d %d %d", &a[4][0], &a[4][1], &a[4][2], &a[4][3], &a[4][4]);

for(i = 0; i < 5; i++) {
for(j = 0; j < 5; j++) {
row[j] += a[j][i];
col[j] += a[i][j];
}
}

printf("\tRow sums: %d %d %d %d %d\n", row[0], row[1], row[2], row[3], row[4]);
printf("\tColumn sums: %d %d %d %d %d\n", col[0], col[1], col[2], col[3], col[4]);

return 0;
}

最佳答案

替换:

printf("\tEnter row #1: ");
scanf("%d %d %d %d %d", &a[0][0], &a[0][1], &a[0][2], &a[0][3], &a[0][4]);
...
printf("\tEnter row #5: ");
scanf("%d %d %d %d %d", &a[4][0], &a[4][1], &a[4][2], &a[4][3], &a[4][4]);

与:

for (i = 0; i < 5; i++) {
printf("\tEnter row #%d: ", i+1);
scanf("%d %d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3], &a[i][4]);
}

关于c - 关于优化这个 C 程序的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464060/

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