求c语言程序
定义一个二维数组 用函数实现下列功能1在键盘输入10个学生的3门课成绩 并显示(main)
2计算每个学生平均分并显示
3每门课平均分并显示
4将学生的平均分存入一维数组并排序
要求输入1得到第一个答案 输入2得到第二个答案 以此类推
c语言二级的水准编
追问:麻烦把你q留下 可以吗 我想问下
追问:麻烦把你q留下 可以吗 我想问下
答案:#include <stdio.h>这个程序是用纯C写的,以前回答过类似的问题,不过没有把函数单列出来,这里按照你的要求重新写过了,呵呵。我已在dev c++环境下测试通过。
#include <stdio.h>
void print(int score[][3])
{
int i;
for(i = 0; i < 10; i ++)
printf("第 %d 位学生的三门成绩: %d %d %d\n", i+1, score[i][0], score[i][1], score[i][2]);
}
void average_score_per_student(float average[], int score[][3])//求值并显示每个学生的平均分
{
int i;
//求每个学生的平均分
for(i = 0; i < 10; i ++)
{
average[i] = (float)(score[i][0] + score[i][1] + score[i][2]) / 3.0;
printf("第 %d 位学生的平均分是: %f\n", i + 1, average[i]);
}
}
void average_score_per_course(int score[][3]){
//计算每门课程的平均分,三门课程的平均分存在变量a, b, c中
float a = 0.0, b = 0.0, c = 0.0;
int i;
for(i = 0; i < 10; i ++)
{
a += score[i][0];
b += score[i][1];
c += score[i][2];
}
a /= 10.0; b /= 10.0; c /= 10.0;
printf("三门课程的平均分是: %f %f %f\n", a, b, c);
}
void sort(float average[])//排序
{
int i, j;
for(i = 0; i < 9; i ++)
for(j = i + 1; j < 10; j ++)
{
float t;
if(average[i] < average[j])
{
t = average[i] ; average[i] = average[j]; average[j] = t;
}
}
}
int main()
{
int score[10][3]; //学生的三门分数
float average[10]; //存储平均分的一位数组
//输入学生的三门课分数
int i;
for(i = 0; i < 10; i ++)
{
printf("请输入第 %d 位学生的三门成绩: ", i+1);
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
score[i][0] = a;
score[i][1] = b;
score[i][2] = c;
}
print(score);//显示学生的成绩 average_score_per_student(average, score); //求每个学生平均分
average_score_per_course(score); //求每个学科平均分
sort(average);
printf("请输入要第几个答案: ");
int num;
scanf("%d", &num);
printf("第%d学生的平均分是: %f\n", num, average[num - 1]);
return 0;
}
#include<stdio.h>
void main()
{
int sum[10][3];//学生我成绩
int an[10];//平均分
int i,j,and=0;
for(i=0;i<10;i++)
{
printf("请输入弟%d名学生的成绩 :",i+1);
for(j=0;j<3;j++)
{
scanf("%d",&sum[i][j]);
}
}
printf("---------输入的学生成绩为------------: \n");
for(i=0;i<10;i++)
{
printf("弟%d名学生的成绩为 :",i+1);
for(j=0;j<3;j++)
{
printf("%d ",sum[i][j]);
}
printf("\n");
}
printf("---------每个学生的平均分为---------: \n");
for(i=0;i<10;i++)
{
for(j=0;j<3;j++)
{
and=and+sum[i][j];
}
an[i]=and/3;
and=0;
printf("弟%d名学生的平均分为 :%d\n",i+1,an[i]);
}
printf("---------每门课平均分为---------: \n");
and=0;
for(j=0;j<3;j++)
{
for(i=0;i<10;i++)
{
and=and+sum[i][j];
}
and=and/10;
printf("弟%d门课平均分为: %d\n",j+1,and);
and=0;
}
printf("---------学生的平均分排序结果为---------: \n");
int a=0;
for(i=0;i<9;i++)
{
for(j=1+i;j<10;j++)
{
if(an[i]>an[j])
{
a=an[i];
an[i]=an[j];
an[j]=a;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",an[i]);
}
printf("\n");
}