#include <stdio.h>
#define renshu_N 40
#define kecheng_N 3
void read(int score[][kecheng_N],long xuehao[],int n);
void Pxuesheng(int score[][kecheng_N],int sum[],float ave[],int n);
void Pkecheng(int score[][kecheng_N],int sum[],float ave[],int n);
void dayin(int score[][kecheng_N],long xuehao[],int sumX[],float aveX[],int sumK[],float aveK[],int n);
main()
{
int score[renshu_N][kecheng_N],sumX[renshu_N],sumK[kecheng_N],n;
long xuehao[renshu_N];
float aveX[renshu_N],aveK[kecheng_N];
printf("请输入学生总人数<%d:",renshu_N);
scanf("%d",&n);
while(n>renshu_N)
{
printf("请输入学生总人数<%d:",renshu_N);
scanf("%d",&n);
}
read(score,xuehao,n);
Pxuesheng(score,sumX,aveX,n);
Pkecheng(score,sumK,aveK,n);
dayin(score,xuehao,sumX,aveX,sumK,aveK,n);
}
void read(int score[][kecheng_N],long xuehao[],int n)
{
int i,j;
printf("输入学生的ID和成绩按照:数学 英语 物理:\n");
for(i=0;i<n;i++)
{
scanf("%ld",&xuehao[i]);
for(j=0;j<kecheng_N;j++)
{
scanf("%d",&score[i][j]);
}
}
}
void Pxuesheng(int score[][kecheng_N],int sum[],float ave[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
sum[i]=0;
for(j=0;j<kecheng_N;j++)
{
sum[i]=sum[i]+score[i][j];
}
ave[i]=(float)sum[i]/renshu_N;
}
}
void Pkecheng(int score[][kecheng_N],int sum[],float ave[],int n)
{
int i,j;
for(j=0;j<kecheng_N;j++)
{
sum[j]=0;
for(i=0;i<n;i++)
{
sum[j]=sum[j]+score[i][j];
}
ave[j]=(float)sum[j]/kecheng_N;
}
}
void dayin(int score[][kecheng_N],long xuehao[],int sumX[],float aveX[],int sumK[],float aveK[],int n)
{
int i,j;
printf("学生的ID\t 数学\t 英语\t 物理\t sum\t ave\n");
for(i=0;i<n;i++)
{
printf("%12ld\t",xuehao[i]);
for(j=0;j<kecheng_N;j++)
{
printf("%4d\t",score[i][j]);
}
printf("%4d\t%5.1f\n",sumX[i],aveX[i]);
}
printf("课程总分\t");
for(j=0;j<kecheng_N;j++)
{
printf("%4d\t",sumK[j]);
}
printf("\n课程平均分\t");
for(j=0;j<kecheng_N;j++)
{
printf("%.1f\t",aveK[j]);
}
printf("\n");
}
传递二维数组示例
最新推荐文章于 2023-06-13 21:56:07 发布