读取矩阵,输出第i行之和等于第j列的所有(i,j)对。
示例:
输入:
1 2 14 8
2 4 3 4
15 7 8 -5
输出:
((1,1),(0,2),(2,2)// //任意顺序
代码:
#include <stdio.h>
#define max 50
int main()
{
int i=0, j=0, r, c;
int arr[max][max], sum_r[max], sum_c[max];
printf("Enter the number of rows(r):");
scanf("%d",&r);
printf("Enter the number of columns(c):");
scanf("%d",&c);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("a[%d][%d]:",i,j);
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<r;i++)
{
sum_r[i]=0;
for(j=0;j<c;j++)
{
sum_r[i] = sum_r[i] + arr[i][j];
}
i++;
}
for(j=0;j<c;j++)
{
sum_c[j]=0;
for(i=0;i<r;i++)
{
sum_c[j] = sum_c[j] + arr[i][j];
}
j++;
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(sum_r[i]==sum_c[j]) printf("(%d,%d)",i,j);
}
}
return 0;
}
我的输出:
((0,2)(1,1)(1,3)(2,2)//额外(1,3)为什么??
此外,此代码不适用于其他输入情况。无法找出任何错误。
sum_c
的for循环中,仅将j
最多计为r
,而不是c
。