华北水利水电大学C语言实验5
C语言程序设计实验报告
实验5 使用数组的程序设计
班级 2013156 学号 201315613 姓名 吴浩
一、实验目的二、实验内容及步骤#include
int main()
{
int a[5][5]={0};//初始化
int i,j,m,n,temp;
i=0;
j=5/2;
a[i][j]=1;//第一行中间填1
for(temp=2;temp<=5*5;temp++)//循环24次,填剩余的24个数
{
m=i;
n=j;
i--;
j++;
if(i<0)
i=5-1;
if(j>5-1)
j=0;
if(a[i][j]!=0)
{i=m+1;
j=n;}
a[i][j]=temp;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
2、完成以下程序,并进行调试
某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:
1)计算每个学生的总分和平均分;
2)按总分成绩由高到低排出成绩的名次;
3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分;
4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。
【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。
程序代码:
#include
main()
{int num[5],i,j,k,c,e;
float score[5][3],sum[5]={0},aver[5],t,a1,a2,a3,b;
printf("请按从小到大学号输入各个同学的数学、英语和计算机的成绩:\n");
for(i=0;i<5;i++)
num[i]=i+1;
for(i=0;i<5;i++)
{printf("学号%d:",num[i]);
for(j=0;j<3;j++)
{scanf("%f",&score[i][j]);}}
for(i=0;i<5;i++)
for(j=0;j<3;j++)
{sum[i]=score[i][j]+sum[i];}
printf("\n");
for(i=0;i<5;i++)
printf("学号为%d的总分:%.2f\n",num[i],sum[i]);
printf("\n");
for(i=0;i<5;i++)
{aver[i]=sum[i]/3;
printf("学号为%d的平均分:%.2f\n",num[i],aver[i]);}
printf("\n");
for(i=0;i<5;i++)
{ for(k=0;k<5;k++)
if(sum[i]>sum[k])
{t=sum[i];
sum[i]=sum[k];
sum[k]=t;
c=num[i];
num[i]=num[k];
num[k]=c;
a1=score[i][0];
score[i][0]=score[k][0];
score[k][0]=a1;
a2=score[i][1];
score[i][1]=score[k][1];
score[k][1]=a2;
a3=score[i][2];
score[i][2]=score[k][2];
score[k][2]=a3;
b=aver[i];
aver[i]=aver[k];
aver[k]=b;}}
printf("名次 学号 数学 英语 计算机 总分 平均分\n");
for(i=0;i<5;i++)
printf("%d%9d%10.2f%10.2f%10.1f%10.1f%9.1f\n",i+1,num[i],score[i][0],score[i][1],score[i][2],sum[i],aver[i]);
printf("\n");
printf("输入学号查询成绩:\n");
scanf("%d",&e);
for(i=0;i<5;i++)
if (num[i]==e)
printf("名次%d:学号%d|数学:%3.2f|英语:%3.2f|计算机:%3.2f|总成绩:%3.2f|平均分:%3.2f\n",i+1,num[i],score[i][0],score[i][1],score[i][2],sum[i],aver[i]);}
3.编写一个程序