|
|
发表于 2023-11-13 13:01:56
|
显示全部楼层
在您提供的代码中,存在一些问题导致无法正确输出预期结果。主要问题点包括:
1. 第一个 scanf 后面的字符处理逻辑可能会导致错误。
2. 查找最大整数和最大整数所在行列数的逻辑存在问题。
下面是修改后的 C 代码:
- #include <stdio.h>
- int main(void)
- {
- int row, i, k;
- char ch = ',';
- int array[30][100] = {{0}};
- scanf("%d", &row);
-
- for (i = 0; i < row; i++) {
- k = 0;
- while (1) {
- scanf("%d", &array[i][k++]);
- if (getchar() == '\n')
- break;
- }
- }
- // 查找最大整数
- int maxNum = 0;
- for (i = 0; i < row; i++) {
- for (k = 0; array[i][k] != 0; k++) {
- if (array[i][k] > maxNum)
- maxNum = array[i][k];
- }
- }
- printf("%d\n", maxNum);
- // 查找最大整数所在行数
- int rowNumbers[30], count = 0;
- for (i = 0; i < row; i++) {
- for (k = 0; array[i][k] != 0; k++) {
- if (array[i][k] == maxNum) {
- rowNumbers[count++] = i + 1;
- break;
- }
- }
- }
- for (i = 0; i < count; i++) {
- printf(i == 0 ? "%d" : ",%d", rowNumbers[i]);
- }
- return 0;
- }
复制代码
以上是修改后的 C 代码,应该可以正确输出期望的结果。如果还有其他问题,请随时提出。 |
|