某班期末考试科目为数学(MT),英语(EN)和物理(PH),有最多不超过30人参加考试
考试后要求:
(1)计算每个学生的总分和平均分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。
上个问题我弄错要求了,使用C语言,不是C++语言
#include <stdio.h>
#include <stdlib.h>
//可以写更好,不过没有必要
typedef struct info{
char name[50];
int id;
int mt;
int en;
int py;
int total;
int avg;
}info_t;
#define NUM_STUDENT 30
int main(int argc,char *argv[]){
info_t list[NUM_STUDENT];
info_t *p;
info_t swap;
int i,j;
int num;
int over = 0;
int id;
printf("How many students.\n");
scanf("%d",&num);
if(num < 0 || num > NUM_STUDENT){
printf("num > 0 and num < %d\n",NUM_STUDENT);
return 0;
}
for(i = 0 ; i < num;i++){
p = &list[i];
printf("input one student info:\n");
printf("input id:\n");
scanf("%d",&p->id);
printf("input mt:\n");
scanf("%d",&p->mt);
printf("input en:\n");
scanf("%d",&p->en);
printf("input ph:\n");
scanf("%d",&p->ph);
p->total = p->mt + p->en + p->ph;
p->avg = p->total / 3;
}
//sort
for(i = 0; i < num;i++){
over = 1;
for(j = 0; j < num - i - 1;j++){
if(list[j].total < list[j + 1].total){
memcpy(&swap,&list[j],sizeof(info_t));
memcpy(&list[j],&list[j+1],sizeof(info_t));
memcpy(&list[i],&swap,sizeof(info_t));
over = 0;
}
}
if(over)
break;
}
for(i = 0; i < num;i++){
printf("id:%d mt:%d en:%d ph:%d avg:%d total:%d\n",
list[i].id,list[i].mt,list[i].en,list[i].ph,list[i].avg,list[i].total);
}
while(1){
printf("please input ID:\n");
scanf("%d",&id);
for(i = 0; i < num;i++){
if(list[i].id == id)
printf("id:%d mt:%d en:%d ph:%d avg:%d total:%d\n",
list[i].id,list[i].mt,list[i].en,list[i].ph,list[i].avg,list[i].total);
}
}
return 0;
}
真心的不会,这是选修课,我是学美术专业的。大神帮忙
追答俺也是刚学c
好吧,我去试试
可否用C语言再帮我写一个程序?
include<stdio.h># include<string.h># define NUM 30typedef struct{ char id[20]; char name[20]; int rank; float MT; float EN; float PH; float SumSocre; float AverageScore;}Student;void sum(Student *stud){ Student *p; for(p=stud;p->id[0]!='\\0';p++) { p->SumSo...
如何用C语言编写一个计算机程序?
main(){ int x;printf("请输入一个整数");scanf("%d",&x);if(x%2 == 0) printf("%d是偶数\\n",x);else printf("%d是奇数\\n",x);}
谁能用C语言帮我写几个小程序 急求
int main(){ int max(int x,int y,int z);int a,b,c,d;scanf("%d%d%d",&a,&b,&c); \/\/scanf%d间不能有逗号,后面是输入的地址因此得加& d=max(a,b,c); \/\/输入的是abc,不是x,y,z\/\/x,y,z是形参a,b,c是实参 printf("max=%d",d);\/\/不是print是printf return 0;} in...
求c语言大佬帮助!帮我写个小程序,谢谢
int n);\/\/随机生成元素取值范围在0到99的数组void Short(int *p,int n);\/\/用选择法对数组中的元素从小到大排序void Print(int *p,int n);\/\/在屏幕上输出数组各元素的值(逗号分隔)#define N (10)int main(){ int a[N],b
怎样用C语言编写一个简单的程序?
int main(){ int a[7]; \/\/ 建立一个 7 元素的数组 int i;int sum = 0;int max = a[0];int min = a[0];\/\/ 手动输入 7 个元素 for (i = 0; i < 7; i++){ printf("请输入第 %d 个元素的值: ", i+1);scanf("%d", &a[i]);} \/\/ 求这 7 个元素的和 for (i...
C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...
求帮我编一个程序,用c语言编写
choice=1;else if(gongzi>=2000&&gongzi<3000)choice=2;else if(gongzi>=3000)choice=3;switch(choice){ case 1:shui=(gongzi-1500)*0.05;case 2:shui=(gongzi-2000)*0.1;case 3:shui=(gongzi-3000)*0.15;} gongzi-=shui;printf("gongzi=%f\\n",gongzi);return 0;} include <stdio.h...
用c语言编写一个浮点运算程序
include<stdio.h> int main(){ float a,b,c,D,max;scanf("%f%f%f",&a,&b,&c);if(a>b)D=a;else D=b;if(D>c)max=D;else max=c;printf("%f",max);return 0;}
谁能用C语言给我写一个可以计算加减乘除的程序(只用算整数就OK)_百度...
char operator ;printf("请输入两个数,输入的两个数用空格分隔\\n");scaf("%d %d",&a,&b);printf("请指定你要输入的运算+或1表示加,-或2表示减,*或3表示乘,\/或4表示除!\\n") ;scanf("%c",&operator) ;switch operator { case ‘1’:‘+’result=a+b;break ;case ‘2’:‘...
如何用C语言编写一个简单的程序!
1、鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可 2、点击上方程序窗口左上角的文件,选择新建 3、在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main()...