C语言:输入10人,语 数 外 分数 求平均分 总分 并排列(从小大大) 输出

作者&投稿:大叔卞 (若有异议请与网页底部的电邮联系)
C语言实现按平均分排序~

你能跟我说清楚的话,我帮你改

#includevoid main(){ float num[10]; int i; float sum=0,ave; for(i=0;i<10;i++) { scanf("%f",&num[i]); sum+=num[i]; } ave=sum/10; printf("sum=%.2f
",sum); printf("ave=%.2f
",ave);}

对程序稍加修改,添加了有关姓名和学号的输入部分,并已通过运行验证,代码如下仅供参考:
说明:方便验证减少不必要的重复输入,这里我用了随机数产生成绩,姓名和学号用了默认值,你可以按注释的提示稍加修改,即可以进行人工的输入
#include "stdio.h"
#include "string.h"
#define a 11
#define b 5
#include "time.h"//这两个头文件的引入是为了随机数和随机数种子
#include "stdlib.h"
void av(float student[a][b]){//求每个人总成绩并保存入数组
int i,j;
for(i=0;i<a-1;i++){
student[i][b-1]=0;
for(j=1;j<b-1;j++)
student[i][b-1]+=student[i][j];
}
}
void sum(float student[a][b]){//求所有人某科总成绩并保存
int i,j;
for(j=1;j<b;j++)
student[a-1][j]=0;
for(i=0;i<a-1;i++){
student[a-1][3]+=student[i][3];
student[a-1][1]+=student[i][1];
student[a-1][2]+=student[i][2];
student[a-1][4]+=student[i][4];
}
}
void input(float student[a][b]){//输入
int i,j;
srand((unsigned)time(NULL));
for(i=0;i<a-1;i++){
student[i][0]=i+1;
/*printf("依次输入第%d个人语、数、外每科成绩:",i+1);*/
for(j=1;j<b-1;j++)
/*scanf("%d",&student[i][j]);*/
student[i][j]=rand()%50+51;//此处为了方便检验程序,用了随机数来代替了手工的输入,想输入只需注释此句,将/**/注释的两句取消注释即可。如果是手工的输入,最好是一个人的不同科成绩用空格分开,输入完一个人的三门成绩后,敲回车继续下一个人的成绩
}
}

void sort(float student[a][b],char name[10][20],char number[10][20]){//最简单的选择排序
int i,j,min;
float num;
char str[20];
for(i=0;i<a-2;i++){
min=i;
for(j=i+1;j<a-1;j++)//每次找出一个最小的值放到合适的位置
if(student[min][b-1]>student[j][b-1])
min=j;
for(j=0;j<b;j++){
num=student[i][j];
student[i][j]=student[min][j];
student[min][j]=num;
}
strcpy(str,name[i]);
strcpy(name[i],name[min]);
strcpy(name[min],str);
strcpy(str,number[i]);
strcpy(number[i],number[min]);
strcpy(number[min],str);
}
}
void myprint(float student[a][b],char name[10][20],char number[10][20]){//输出结果
printf(" 输入时的序号 学号 姓名 语文 数学 外语 三科总成绩 平均成绩\n\n");//此处的空格或许会因为百度网页的原因而与我的不符,从而使得显示的不是很整齐自己稍加修改即可
for(int i=0;i<a-1;i++){
printf("%3.0f",student[i][0]);
printf("%12s",number[i]);
printf("%8s",name[i]);
for(int j=1;j<b;j++)

printf("%10.1f",student[i][j]);
printf("%15.2f",student[i][b-1]/(float)(b-2));
printf("\n");
}
printf("各平均分对应为:%5.2f%11.2f%10.2f%10.2f\n\n",student[a-1][1]/(float)(a-1),student[a-1][2]/(float)(a-1),student[a-1][3]/(float)(a-1),student[a-1][4]/(float)(a-1));

}
void main(){
char name[10][20]={"张三","李四","王五","赵六","刘七","马八","大毛","二毛","三毛","小毛"};
char number[10][20]={"20070201","20070202","20070203","20070204","20070205","20070206","20070207","20070208","20070209","20070210"};
//int i;
float student[a][b];
/*printf("请输入学生的学号和姓名:\n");/为了验证方便,所以使用了默认值。如果要自己输入可以去掉int i行和此行到for结束部分注释内容即可输入学生的姓名和学号
for(i=0;i<10;i++){
scanf("%s",number[i]);
scanf("%s",name[i]);
printf("\n");
}*/

input(student);
av(student);
sum(student);
printf("\n\n输入的各同学的成绩如下所示:\n\n");
myprint(student,name,number);
sort(student,name,number);
printf("\n\n按升序排序后各同学的成绩如下所示:\n\n");
myprint(student,name,number);
}

因为程序很简单,所以只是进行了简单的注释,想来你一定可以很容易就读懂的,呵呵,祝你的问题早日解决!

#include <stdio.h>
int main()
{
struct score
{
int chi;
int mat;
int eng;
double avg;
} stu[10],tem;
int i,j;
for(i=0;i<=9;i++)
{
printf("输入第%d个学生的成绩(用空格顿开,用回车结束)\n",i);
scanf("%d%d%d",&stu[i].chi,&stu[i].mat,&stu[i].eng);
}
for(i=0;i<=9;i++)
stu[i].avg=(stu[i].chi+stu[i].mat+stu[i].eng)/3.0;
for(i=0;i<=8;i++)
for(j=0;j<=8-i;j++)
if(stu[j].avg<stu[j+1].avg)
{
tem=stu[j];
stu[j]=stu[j+1];
stu[j+1]=tem;
}
printf("名次 语文 数学 英语 平均分\n");
for(i=0;i<=9;i++)
printf("%-10d%-10d%-10d%-10d%-10.3f\n",i+1,stu[i].chi,stu[i].mat,stu[i].eng,stu[i].avg);
return 0;

}


用c语言编程从键盘输入十个学生的成绩。
C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩。1、虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。2、循环语句中进行10个数的累加在sum里面,然后在...

C语言:输入10人,语数外 分数 求平均分 总分 并排列(从小大大) 输出_百...
student[i][j]=rand()%50+51;\/\/此处为了方便检验程序,用了随机数来代替了手工的输入,想输入只需注释此句,将\/**\/注释的两句取消注释即可。如果是手工的输入,最好是一个人的不同科成绩用空格分开,输入完一个人的三门成绩后,敲回车继续下一个人的成绩 } } void sort(float student[a][b...

C语言编程:输入10个人的C语言成绩(0~100之间),输出最高分,最低分和平 ...
include<stdio.h>void main(){int a[10],i,min,max;float aver;for(i=0;i<10;i++)scanf("%d",&a[i]);min = max = aver = a[0];for(i=1;i<10;i++){if(a[i]<min) min = a[i];if(a[i]>max) max = a[i];aver +=a[i];}aver \/=10;printf("%d %d %f\\n",...

C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值...
1、请输入第7个学生的成绩:76请输入第8个学生的成绩:84请输入第9个学生的成绩:87请输入第10个学生的成绩:7910名学生的平均成绩为:830```希望这个代码可以帮助你实现你所需的功能。2、C语言:编写程序,输入10个学生的成绩数据,计算并输出平均分及低于平均分的学生的人数。

c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生...
printf("请输入10个学生的成绩:\\n");for (i = 0; i < 10; i++) { scanf("%d", &scores[i]);sum += scores[i];} \/\/ 计算平均成绩 avg = (float)sum \/ 10;printf("平均成绩为:%.2f\\n", avg);\/\/ 统计超过平均分数的学生人数 for (i = 0; i < 10; i++) { if (...

C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值...
我也去答题访问个人页 展开全部 #include \\x0d\\x0a\\x0d\\x0a#define MAX 10\\x0d\\x0a\\x0d\\x0astruct student {\\x0d\\x0achar no[10];\\x0d\\x0achar name[10];\\x0d\\x0afloat score[3];\\x0d\\x0a}stu[MAX];\\x0d\\x0a\\x0d\\x0afloat ave_course[3] = {0};\\x0d\\x...

C语言编程:任意输入10个人的姓名,按字母顺序升序排列。
本程序一共有四个for循环:第一个for循环为赋初值;第二、三个for循环为嵌套循环,完成排序工作;第四个for循环为打印输出。

c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生...
int score[100],m,below[100];int i=0;char c;printf(" 请输入学生成绩,回车后结束:\\n");do { scanf("%d",&score[i]);i++;c=getchar();if(c=='\\n')break;} while(1);m=fun(score,i,below);printf("高于平均分的人数有%d人\\n", m);for(i=0;i<m;i++)printf("%d\\t...

c语言。输入10个学生的某门课程成绩,计算出平均成绩,并输出不及格成绩和...
void main(){ int num = 0;float sum = 0.0;float a[10];printf("请输入10名学生的成绩:\\n");for (int i = 0; i < 10; i++){ scanf("%f", &a[i]);if(a[i] < 60){ num++;} sum += a[i];} sum = sum\/10.0;printf("不及格人数为:%d",num);printf("平均...

C语言程序 输入10个学生的成绩,要求输出这10个成绩的及格率和优秀率,再...
int grade[10],NoGood[10],i,j=0,k=0,m=0; float PassRate,ExeRate; printf("请输入10个学生的成绩:\\n"); for(i=0;i<10;i++) { scanf("%d",&grade[i]); if(grade[i]>=85) { k++; } if(grade[i]>=60) { j++; } else { NoGood[m++]=i; } } PassRate=1.0f*j\/10*100...

宿豫县18292384815: C语言:输入10人,语 数 外 分数 求平均分 总分 并排列(从小大大) 输出 -
鄂滕结合: 对程序稍加修改,添加了有关姓名和学号的输入部分,并已通过运行验证,代码如下仅供参考: 说明:方便验证减少不必要的重复输入,这里我用了随机数产生成绩,姓名和学号用了默认值,你可以按注释的提示稍加修改,即可以进行人工的输...

宿豫县18292384815: c语言中怎么写: 已知一个班上10个学生,总共有语、数、外三门课,输入这10个学生的成绩, 计算每个学生的总成绩和平均成绩,并输出; 计算每科平均成绩,并输出; 找出每科最高分,输出学号和分数; 4)、找出总成绩最高的学生,并输出学号和总分; -
鄂滕结合: #include <stdio.h> struct student { int xuehao; float score[3]; float sum; }; struct student s[1000];//该系统可支持1000名学生的信息录入 int size;/*学生人数*/ int i=0,j=0; float sum=0,jun=0; /*录入学生信息次数判断*/ void shuru() { printf("请确定...

宿豫县18292384815: C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩. -
鄂滕结合: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/* C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩*/ #include <stdio.h> #define N 10 intmain() {floatarr[N]={0.0},s=0.0;inti;for(i=0;i!=N;++i){//输入scanf("%f",&arr[i]);s+=arr[i];}printf("%0.2f\n", s/N);//输出平均数return0; }

宿豫县18292384815: 通过键盘输入10名学生的c语言成绩,输出最高分与最低分 -
鄂滕结合: #include <stdio.h> #define N 10int main() {int i, j, tmp, a[N] = {0}; printf("请输入10名学生C语言成绩(空格隔开):\n");for(i = 0 ; i < N; i++)scanf("%d", &a[i]); for(i = 0 ; i < N-1; i++){for(j = 0; j < N-i-1; j++){if(a[j] < a[j+1]){tmp = a[j];...

宿豫县18292384815: C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值 -
鄂滕结合: #include <stdio.h>#define MAX 10struct student {char no[10];char name[10];float score[3]; }stu[MAX];float ave_course[3] = {0}; float ave_student[MAX] = {0};int max_ave_i = 0; // 存储平均分最高的学生索引 int max_course_i[3] = {0}; //存储...

宿豫县18292384815: c语言:编写程序输入 10 个学生的成绩,计算并输出最高成绩和平均成绩,然后统计低于平均成绩的人数 -
鄂滕结合: #include<stdio.h> int main() { int i; float a[10],min,max,avg;//max表示最高分,min表示最低分,avg表示平均分 printf("请输入10位学生的分数\n"); printf("********************************\n"); for(i=0;i<=9;i++) { printf("请输入一位学生的分数:"...

宿豫县18292384815: c语言.输入10个学生课程成绩,输出最高分,最低分平均分 -
鄂滕结合: #include <stdio.h> float max=0,min=100,sum=0; float f(float *a,int n) {int i;float av;for(i=0;i<n;i++){if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];sum=sum+a[i];}av=sum/n;return(av); } void main( ) {float s2[10]={67.5,89.5,99,69.5,77, 89.5,...

宿豫县18292384815: C语言:输入10个学生的单科成绩,求出其中的最高分、最低分以及超过平均分的人数.怎么编程?我学的是C++, -
鄂滕结合: #include "iostream.h" void main() {float score[10],sum=0,avg,max=0,min,j,k;int count = 0;cout << "请输入学生成绩" <<endl;for(int i = 0;i < 10;i++){cin >> score[i]; //依次输入学生成绩sum += score[i]; //计算总分if(i == 0)min = score[i]...

宿豫县18292384815: 求C语言,随即输入10个人的学习成绩,求名次.适合初学者的 -
鄂滕结合: 代码如下,有问题hi我#include void main() { int a[10]; int b[10]; //记录名次 int i, j; for (i = 0; iscanf("%d", &a[i]); int index; for (i = 0; i{ index = 0; for (j = 0; j{ if (i != j && a[j] > a[i]) index++; //记录比第i个成绩大的成绩的个数 } b[i] = index + 1; } printf("名次为:"); for (i = 0; iprintf("%d ", b[i]); }

宿豫县18292384815: c语言编程:输入10个学生的成绩,存放到一个数组中 -
鄂滕结合: #include <stdio.h>int main() {int grade[10];int i,j,x;float s=0.0;printf("请输入10个学生成绩:\n");for(i=0;i<10;i++) //把学生成绩放到数组中{scanf("%d",&grade[i]);s+=grade[i]; //求总分}for(i=0;i<10;i++) //把数组从小到大排序{ ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网