
速求C语言编程题
#include<stdio.h>
//计算行元素和
void CountRow(int a[][3])
{
int i,j,sum1=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum1 += a[i][j];
}
printf("第%d行元素和为:%d ",i,sum1);
sum1=0;
}
printf("\n");
}
//计算 列元素元素和
void CountRank(int a[][3])
{
int i,j,sum2=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum2 += a[j][i];
}
printf("第%d列元素和为:%d ",j,sum2);
sum2=0;
}
printf("\n");
}
//计算主对角线元素和
void CountD(int a[][3])
{
int i,j,sum3=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i == j)
{
sum3 += a[i][j];
}
}
}
printf("主对角线元素和为:%d ",sum3);
}
void main()
{
int i,j;
int a[3][3];
for(i=0;i<3;i++)
{
printf("请输入矩阵第%d行的3个数字,以空格隔开:",i);
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d,",a[i][j]);
}
printf("\n");
}
CountRow(a);
CountRank(a);
CountD(a);
}
#include <stdio.h>
int getsumrow(int a[][3],int rowno)
{
rowno--;
int i,sum = 0;
for(i=0;i<3;i++)
sum += a[rowno][i];
return sum;
}
int getsumcolumn(int a[][3],int columnno)
{
columnno --;
int i,sum = 0;
for(i=0;i<3;i++)
sum += a[i][columnno];
return sum;
}
int getsumdiagonal(int a[][3],int flag) // flag = 1代表正对角线,flag = -1代表斜对角线
{
int i,sum = 0;
if(flag == 1)
{
for(i=0;i<3;i++)
sum += a[i][i];
}
else
{
for(i=0;i<3;i++)
sum += a[i][2-i];
}
return sum;
}
int main()
{
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int sum,sum2;
sum = getsumrow(a,1);
printf("the sum of %d row is %d\n",1,sum);
sum = getsumcolumn(a,2);
printf("the sum of %d column is %d\n",1,sum);
sum = getsumdiagonal(a,1);
sum2 = getsumdiagonal(a,-1);
printf("the sum of diagonal is %d and %d\n",sum,sum2);
return 0;
}