在这个问题中,我试图解决有关 for 循环的问题
In this question im trying to solve a problem about for loops
在这道题中,我要查找任何和大于2的行或列,找到的第一行或第一列突破循环,如果没有任何打印编号,则打印yes。该代码可以很好地打印每行和每列的总和,但它无法定义输入矩阵是否有任何具有这种质量的行或列。
#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 语句中有一个拼写错误
if (sw = 1) printf("yes");
您必须使用比较运算符 ==
而不是赋值运算符 =
if (sw == 1) printf("yes");
或更简单
if (sw) printf("yes");
如果我没理解错的话,那么你需要的是下面这样的东西
for(i=0; !sw && i<m; i++)
{
sum_r = 0;
for(j=0; !( sum_r > 2 ) && j<n; j++)
{
sum_r += a[i][j];
if(sum_r > 2)
{
sw = 1;
}
}
}
for(i=0; !sw && i<n; i++)
{
sum_c = 0;
for(j=0; !( sum_c > 2 ) && j<m; j++)
{
sum_c += a[j][i];
if (sum_c > 2)
{
sw = 1;
}
}
}
在这道题中,我要查找任何和大于2的行或列,找到的第一行或第一列突破循环,如果没有任何打印编号,则打印yes。该代码可以很好地打印每行和每列的总和,但它无法定义输入矩阵是否有任何具有这种质量的行或列。
#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 语句中有一个拼写错误
if (sw = 1) printf("yes");
您必须使用比较运算符 ==
而不是赋值运算符 =
if (sw == 1) printf("yes");
或更简单
if (sw) printf("yes");
如果我没理解错的话,那么你需要的是下面这样的东西
for(i=0; !sw && i<m; i++)
{
sum_r = 0;
for(j=0; !( sum_r > 2 ) && j<n; j++)
{
sum_r += a[i][j];
if(sum_r > 2)
{
sw = 1;
}
}
}
for(i=0; !sw && i<n; i++)
{
sum_c = 0;
for(j=0; !( sum_c > 2 ) && j<m; j++)
{
sum_c += a[j][i];
if (sum_c > 2)
{
sw = 1;
}
}
}