C语言编程题 急急急

2025-02-26 08:25:58
推荐回答(4个)
回答1:

#include
#include

char name[4][20];
int score[4][4];
char lesson[4][20];

void average() //计算平均分
{
int i;
int a[4];
for(i=0;i<4;i++)
{
a[i]=(score[i][0]+score[i][1]+score[i][2]+score[i][3])/4;
printf("%s %d\n",name[i],a[i]); //输出每个学生的姓名和平均分
}
}

void max() //找最高分
{
int i,j;
int m[4]={0};
char n[4][20];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(score[i][j]>m[i])
{
m[i]=score[i][j];
strcpy(n[i],name[j]);
}
}
printf("%d %s %s\n",m[i],n[i],lesson[i]); //输出每门最高分,学生姓名,课程名
}
}
void main()
{
int i;
for(i=0;i<4;i++)
scanf("%s",&lesson[i]); //输入四门课名称
for(i=0;i<4;i++)
scanf("%s %d %d %d %d",&name[i],&score[0][i],&score[1][i],&score[2][i],&score[3][i]); //输入学生的名字和成绩
average();
max();
}

已测试通过。你可以试试。希望有所帮助。呵呵

回答2:

要程序代码?我没调试软件,还是算了吧!
可以提供个思路:用二维数组实现和循环实现。

回答3:

#include

int main()
{
int score[3][4];
int sum,max,x,y,i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&score[i][j]);
max=score[0][0];
x=0;
y=0;
for(i=0;i<3;i++)
{
sum=0;
for(j=0;j<4;j++)
{
if(score[i][j]>max)
{
max=score[i][j];
x=i;
y=j;
}
sum+=score[i][j];
}
printf("ave[%d]:%d\n",i,sum/4);
}
printf("The max is %d:\n",max);
printf("student:%d\nclass:%d\n",x,y);

return 0;

}

回答4:

void average(int a[2][3]){
int sum=0,avg=0,i=0,j=0;
for(;i<=2;i++){
for(;j<=3;j++){
sum += a[i][j];
}
printf("NO:%d,average",i+1,sum/3);
}

void maxscore(int a[2][3]){
int max = a[0][0],i=0,j=0,m=0,n=0;
for(;i<=2;i++){
for(;j<=3;j++){
if(maxmax=a[i][j];
m=i;n=j;
}
}
printf("NO:%d,lesson:%d,maxscore:%d",m+1,n+1,max);
}

main()
{
int a[2][3] ,i = 0 ,j = 0,score;
for(;i<=2;i++){
for(;j<=3;j++){
printf("No:%d\tlesson:%d:",i+1,j+1);
scanf("%d",&score);
}
}
average(a);
maxscore(s);
}