【发布时间】:2022-01-09 21:33:00
【问题描述】:
在这个问题中,我正在寻找总和大于 2 的任何行或列,找到的第一行或列突破循环并在没有任何打印否的情况下打印是。该代码可以很好地打印每一行和每一列的总和,但它无法定义输入矩阵是否有任何具有这种质量的行或列。
#include <stdio.h>
int main()
{
int n,m,i,j;
int sum_r,sum_c;
int sw = 0;
scanf("%d%d",&m,&n);
int a [10][10];
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0; i<m; i++)
{
sum_r = 0;
for(j=0; j<n; j++)
{
sum_r += a[i][j];
if(sum_r >= 2)
{
sw = 1;
}
}
}
for(i=0; i<n; i++)
{
sum_c = 0;
for(j=0; j<m; j++)
{
sum_c += a[j][i];
if (sum_c >= 2)
{
sw = 1;
}
}
}
if (sw = 1) printf("yes");
else printf("no");
return 0;
}
【问题讨论】:
-
if (sw = 1)->if (sw == 1) -
另外,您可以立即
printf("yes"); return 0;退出您拥有sw = 1的任何位置,因为无需再继续检查。然后在函数结束时你可以有一个无条件的printf("no");,因为到达那里意味着没有找到条件。所以根本不需要sw。
标签: c for-loop if-statement sum nested-loops