C语言输入 5 个学生的数学成绩和英语成绩,关于排序输出

输入5个学生的数学成绩和英语成绩;
然后他们的 分数=数学*1.2+英语*0.8
取出前两名当作合格者,输出他们是原来的第几位。
然后剩余3个人的 分数=数学*0.8+英语*1.2
取前两名做合格者输出他们是原来的第几位。
剩下一个人不合格,输出他是原来的第几位。
这样的一个程序要怎么写。

用for和[]来写,太复杂我不懂,才刚学一段时间

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>


int main(int argc,char * argv[])

{

double a[5][2],zf1[5],ls1,ls2,tj[5],hsw[3],hsw1[3];

int i,j;

printf("请输入5个同学的数学和英语成绩:\n");

for(i=0;i<5;i++)

{

printf("请输入第%d个同学的数学和英语成绩:\n",i+1);

for(j=0;j<2;j++)

{

scanf("%lf",&a[i][j]);

}

zf1[i]=a[i][0]*1.2+a[i][1]*0.8;

}

printf("现在5个同学的成绩情况为:\n");

for(i=0;i<5;i++)

{

printf("第%d个同学的数学为:%lf,英语为:%lf,平均为:%lf\n",i+1,a[i][0],a[i][1],zf1[i]);

tj[i]=zf1[i];

}

//冒泡排序

for(i=0;i<4;i++)

{

for(j=0;j<4-i;j++)

{

if(zf1[j]<zf1[j+1])

{

ls1=zf1[j];

zf1[j]=zf1[j+1];

zf1[j+1]=ls1;

}

}

}

printf("\n现在的前两位的分数是:%lf,%lf\n",zf1[0],zf1[1]);

printf("他们是之前的第几位?\n");

for(i=0;i<5;i++)

{

if(tj[i]==zf1[0])

{

printf("第%d位,",i+1);

}

if(tj[i]==zf1[1])

{

printf("第%d位\n",i+1);

}

}

for(i=0;i<5;i++)

{

if(tj[i]==zf1[2])

{

hsw[0]=a[i][0]*0.8+a[i][1]*1.2;

hsw1[0]=tj[i];

}

if(tj[i]==zf1[3])

{

hsw[1]=a[i][0]*0.8+a[i][1]*1.2;

hsw1[1]=tj[i];

}

if(tj[i]==zf1[4])

{

hsw[2]=a[i][0]*0.8+a[i][1]*1.2;

hsw1[2]=tj[i];

}

}

for(i=0;i<2;i++)

{

for(j=0;j<2-i;j++)

{

if(hsw[j]<hsw[j+1])

{

ls2=hsw[j];

hsw[j]=hsw[j+1];

hsw[j+1]=ls2;

}

}

}

printf("\n现在的前两位的分数是:%lf,%lf\n",hsw[0],hsw[1]);

printf("他们是之前的第几位?\n");

for(i=0;i<5;i++)

{

if(hsw1[0]==tj[i])

{

printf("第%d位,",i+1);

}

if(hsw1[1]==tj[i])

{

printf("第%d位\n",i+1);

}

if(hsw1[2]==tj[i])

{

printf("最后一个是原来的第%d位\n",i+1);

}

}

printf("\n");

system("pause");

return 0;

}

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言输入 5 个学生的数学成绩和英语成绩,关于排序输出
int main(int argc,char * argv[]){ double a[5][2],zf1[5],ls1,ls2,tj[5],hsw[3],hsw1[3];int i,j;printf("请输入5个同学的数学和英语成绩:\\n");for(i=0;i<5;i++){ printf("请输入第%d个同学的数学和英语成绩:\\n",i+1);for(j=0;j<2;j++){ scanf("%lf",&a[...

c语言,有5个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序...
include<stdio.h>#include<stdlib.h>struct Student{ int num; char name[20]; float score;};int main(){ struct Student stu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Sun",100}}; int n=5; int i; ...

C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的
char name[20];float aver;}stu[1000];main(){ int i,j,n;struct student temp;\/*注意:变量temp的类型与数组stu的元素类型为相同结构体的时候,才可交换两个结构体数组元素,所以此处需要定义temp的类型*\/ printf("请输入学生人数:\\n");scanf("%d",&n);printf("请按顺序输入名字、学号、年...

...五个人的名字和成绩,根据成绩从小到大排序输出名字和成绩,和总成...
又是这个问题#include <stdio.h>#include <stdlib.h> #define N 5struct student{ char name[10]; float score;}; int main(){ student stu[N]; float sum = 0.0; float t_score[N]; int i; int j; float temp; printf("输入学生名字 成绩,例如:小明...

C语言求5名学生四科成绩总分平均分,总分降序输出
include<stdlib.h> typedef struct node { int sno; \/*这里分别是学号(便于最后列表时统计),四门课的分数,总分,平均分*\/ int course1;int course2;int course3;int course4;int course;int aver;}student;void main(){ int i,j;student st[4],temp;for(i=0;i<4;i++) \/*进...

c语言:将5名学生的成绩从高到低排序
include <stdio.h> int main(void){ int i,j;int score[5] = {61,85,72,100,98};int index;int max = -999;for(i = 0; i < 5; i++){ for(j = i; j < 5; j++) \/\/ 找到最大值 { if(score[j] >= max){ max = score[j];index = j;} } score[index] = ...

...名学生的信息,包含学号、姓名、数学成绩、英语成绩、C语言成绩...
include <stdio.h>typedef struct stu{char num[10];char name[10];float s;float e;float c;}STU;STU a[5];int main(){int i,j;float fen[5],y;STU x;float max,min; \/\/定义两个变量for(i=0;i<5;i++){scanf("%s %s %f %f %f",a[i].num,a[i].name,&a[i].s,&a...

C语言 计算5个学生的成绩,总成绩和平均成绩,输入最大值和最小值._百度...
if(score[i]>max) max = score[i]; if(score[i]<min) min = score[i]; } avg=all\/5; printf("总成绩:%g\\n平均成绩:%3.2f\\n最大值:%g\\n最小值:%g\\n",all,avg,max,min)return 0;} \/* %g是自动简化输出,省略后面的0 *\/ 经过调试 没有有问题 运行如下 ...

c语言 学生信息包括,学号,姓名,五门功课的成绩.输入输出。总分排序
define N 200 define SCORES 5 define NUMLEN 10 struct std_type{ char no[NUMLEN];\/*学号*\/ char *name;\/*名字字符串指针*\/ int scores[SCORES];\/*五门功课的成绩*\/ };struct std_type students[N];int order[N];int total[N];\/*[函数]输入一个学生信息函数*\/ int readastu(struct...

急急急!!c语言里的结构体对一个元素排序怎么让其他元素一起按排序后...
for(i=0;i<5;i++)\/\/输入5个学生的学号、语文、数学、英语成绩 { printf("请输入第%d个学生的信息:",i+1);scanf("%d,%d,%d,%d",&stu[i].number,&stu[i].chinese,&stu[i].math,&stu[i].endlish);} for(i=0;i<4;i++)\/\/利用冒泡从大到小排序 for(j=0;j<4-i;j++)if(...

相似回答