我正在做这个练习 “以 n 行 m 列自然数的矩阵作为输入(n 和 m 也是 从输入中获取)。该程序检查数字的总和 每行包含的内容对于所有行都是相同的”
我不知道如何保存矩阵中最后一行的总和。如果我插入一个临时变量来分配最后的总和,那么它会在下一个 for 循环中被覆盖
int main ()
{
int i, j;
int sum;
int temp;
int n=3, m=3;
int matrix[n][m];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Enter: ");
scanf("%d",&matrix[i][j]);
}
}
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
{
sum+=matrix[i][j];
}
}
}
最佳答案
保持代码与现在的代码非常相似,您可以执行以下操作:
int main (){
int i, j;
int sum = 0;
int oldsum = 0;
int temp;
int n=3, m=3;
int matrix[n][m];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Enter: ");
scanf("%d",&matrix[i][j]);
}
}
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
{
sum+=matrix[i][j];
}
if (i == 0 || sum == oldsum){
oldsum = sum;
}
else {
printf("The sums are not equal!\n");
return 1;
}
}
printf("All the sums are equal!\n");
return 0;
}
由于您需要检查所有行的总和是否相同,因此当您发现总和与前一个总和不同时,您可以安全地停止程序,在这种情况下,当您发现不同的总和时,您返回1
否则,您将在 main
末尾返回 0
。
条件中的||
用于处理sum
和oldsum
都为0时的第一次求和计算;
关于c - 如何在C中存储一行的最后一个和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817168/