打印输出这种的效果,不对的话再微调修改下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0//存放行
int j = 0//存放列
double sum//存放对角线数据和
//定义一个整型二维数组array并初始化
int array[5][5] = {
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25},}
//以5x5的矩阵形式输出数组
for(i=0i<5i++)
{
for(j=0j<5j++)
{
// printf("第%d行第%d列元素是:%4d\t",i+1,j+1,array[i][j])
printf("%4d",array[i][j])//打印输出矩阵数组
if(j==4)
{
printf("\n")
}
if(i == j || 4-i == 4-j) //计算对角线之和
{
sum += array[i][j]
sum += array[4-i][4-j]
}
}
}
printf("\n对角线之和是:%4.lf\n",sum)
return 0
}
答:这段程序是有错误,elseif(score[i]>max)
min=score[i]是错了
应该为else
min=score[i]或者:else
if(score[i]<min)
min=score[i]
还有max=min=score[0]
for(i=1i<10i++)可不可以换成max=min=score[0]
for(i=0i<10i++)。
不可以,因为score[0]你还没有给初值
for(i=0i<10i++)
scanf("%d",&score[i])
/*这里是将它们赋值
max=min=score[0]
for(i=1i<10i++)
数组是先给初值才能执行的
float
ave这个是多余的,因为没有涉及到求平均值
改后源程序如下:
main()
{int
i,score[10]
int
max,min
printf("请输入10个成绩:\n")
for(i=0i<10i++)
scanf("%d",&score[i])
max=min=score[0]
for(i=1i<10i++)
if(score[i]>max)
max=score[i]
else
min=score[i]
printf("max=%d,min=%d\n",max,min)
}