(C语言用指针)从键盘输入一组数据存入数组a[3][3]中,求其主对角线下方元素之和。

如题所述

# include "stdio.h"
# define N 3 
int main()
{
int a[N][N],i,j,sum=0;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(i>j)
sum+=a[i][j];
}
}
printf("所求的矩阵和为:%d",sum);
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-08-16
数组a[3][3]中,其主对角线下方元素可是只有一个啊!
#include<stdio.h>
int main()
{int i,j,a[3][3],*p=a[0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",p+3*i+j);
printf("最主对角线下方元素之和=%d\n",*(p+6));
}本回答被网友采纳
第2个回答  2012-12-19
#include <stdio.h>int main()
{
int a[3][3];
int i,j,sum=0;
for(i=0;i<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++)
if(i>j) sum+=a[i][j];

printf("%d\n",sum); return 0;
}
第3个回答  2012-12-19
楼主你好

具体代码如下:
#include<stdio.h>
int main()
{
int i,j,a[3][3];
int sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
if(j<i)
sum+=a[i][j];
}
}
printf("%d\n",sum);
return 0;
}

希望能帮助你哈追问

指针,谢谢,而且对角线的下标相同要再用j控制干嘛,直接sum+=a[i][i]

追答

你不是说是主对角线下方的元素吗? a[i][i]是主角线上的元素!!!

指针改了
#include
int main()
{
int i,j,a[3][3],*p=a[0];
int sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",p+i*3+j);
if(j<i)
sum+=*(p+i*3+j);
}
}
printf("%d\n",sum);
return 0;
}

追问

我去,好吧,我题目看错了

本回答被提问者采纳
相似回答