C语言编程题:定义一个5╳5的矩阵,求对角线上的元素之和。

要求:1)5╳5的矩阵是一个整型二维数组。
2)对角线上交叉的元素只加一次。

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void main()

{

int a[4][4],i,j,s1=0,s2=0,sum=0;

srand(time(NULL));//生成随机种子

for(i=0;i<5;i++)//赋值

for(j=0;j<5;j++)

a<i>[j]=rand()%10+0;

printf("随机生成的数组为:\n");

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

printf("%d\t",a<i>[j]);

if(j==4)

printf("\n");

}

printf("\n");

s1=a[0][0]+a[0][4]+a[1][1]+a[1][3]+a[2][2]+a[3][1]+a[3][3]+a[4][0]+a[4][4];

printf("此数组对角线之和值为:%d\n",s1);

}

扩展资料:

printf()用法:

printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:

int printf(const char*format,...);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。

printf()函数的调用格式为:

printf("<格式化字符串>",<参量表>);其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出;参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

规定符

%d十进制有符号整数

%u十进制无符号整数

%f浮点数

%s字符串

%c单个字符

%p指针的值

%e指数形式的浮点数

%x,%X无符号以十六进制表示的整数

%o无符号以八进制表示的整数

%g把输出的值按照%e或者%f类型中输出长度较小的方式输出

%p输出地址符

%lu 32位无符号整数

%llu 64位无符号整数



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-26
#include<stdio.h>
void main()
{
int Fire[5][5];
int i = 0;
int j = 0;
int sum = 0;
printf("请输入一个5×5的矩阵:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&Fire[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i == j)
sum += Fire[i][j];
if(i+j == 4 && i!=j)
sum += Fire[i][j];
}
}
printf("对角线元素之和为:%d\n",sum);
}本回答被网友采纳
第2个回答  2012-06-11
#include<stdio.h>
int main()
{
int a[5][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};
int sum=0,i;
for (i=0;i<5;i++)
sum=sum+a[i][i];
for (i=0;i<5;i++)
sum=sum+a[i][4-i];
printf("%d\n",sum);
}本回答被提问者采纳
第3个回答  2012-06-11
for循环的时候i,j同时递增就能够实现了。追问

能把详细过程写出来吗?可以追加财富值,谢谢了

追答

#include
int main(){
int a[][5]={1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5};
int result = 0;
int i,j;
for(i=0,j=0;i<5;i++,j++){
result = result + a[i][j];
}
printf("Result is %d\n",result);
}