c语言高手进开帮帮忙!!急!!!!

求助谁能帮我做个c程序~有三个题目,随便哪个都行~~题目如下~急需!!谢谢!!!1,成绩排名次某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30... 求助谁能帮我做个c程序~有三个题目,随便哪个都行~~题目如下~急需!!谢谢!!!
1,成绩排名次
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:
(1)计算每个学生的总分和平均分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

2、学生成绩统计
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)统计各分数段的学生人数及所占的百分比。

3、矩阵基本运算的实现(加、减、乘、除、转置)
谢谢你的答案。我试过了~很好!请加上注释和流程图行么?非常感谢!
展开
 我来答
Draconious
2009-07-01 · TA获得超过6241个赞
知道大有可为答主
回答量:2142
采纳率:0%
帮助的人:2531万
展开全部
第一题的答案,大体上是这样了。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 30

typedef struct{
char id[10];
char name[20];
int MT;
int EN;
int PH;
int total;
float ave;
}Stu;

void add(Stu **s,Stu *a,int n){ //添加新纪录
int i;
for(i=n-1;i>=0;i--){ //把新加入的记录按照总分从大到小的顺序排列
if((s[i]->total)<(a->total)) s[i+1]=s[i];
else break;
}
s[i+1]=a;
}

void display(Stu **s,int n){ //显示所有记录
int i;
printf(" ID Name Mathematics English Physics Total Average\n");
for(i=0;i<n;i++)
printf("No.%d: %s %s %d %d %d %d %f\n",i+1,s[i]->id,s[i]->name,s[i]->MT,s[i]->EN,s[i]->PH,s[i]->total,s[i]->ave);
}

void search(Stu **s,char id[],int n){ //按照指定学生编号查找
int i;
for(i=0;i<n;i++)
if(strcmp(s[i]->id,id)==0) break; //如果找到对应编号,停止
if(i>=n) printf("Cannot find this id.\n"); //如果没有次编号,输出错误提示
else{
printf(" ID Name Mathematics English Physics Total Average\n");
printf("No.%d: %s %s %d %d %d %d %f\n",i+1,s[i]->id,s[i]->name,s[i]->MT,s[i]->EN,s[i]->PH,s[i]->total,s[i]->ave);
}
}

int main(){
int n=0,c;
Stu **s=(Stu **)calloc(N,sizeof(Stu *));
do{
printf("1.Add 2.Display 3.Search 4.Quit\n");
printf("Enter your choice: ");
scanf("%d",&c);
if(c==1){
if(n>=N) printf("Cannot add anymore.\n");
else{
Stu *a=(Stu *)malloc(sizeof(Stu));
printf("Enter the ID: ");
scanf("%s",a->id);
printf("Enter the name: ");
scanf("%s",a->name);
printf("Enter the score of Mathematics: ");
scanf("%d",&(a->MT));
printf("Enter the score of English: ");
scanf("%d",&(a->EN));
printf("Enter the score of Physics: ");
scanf("%d",&(a->PH));
a->total=a->MT+a->EN+a->PH; //计算总分
a->ave=(float)a->total/3; //计算平均分
add(s,a,n);
n++;
}
}
else if(c==2){
display(s,n);
}
else if(c==3){
char id[10];
printf("Enter the id: ");
scanf("%s",id);
search(s,id,n);
}
else if(c==4){
int i;
for(i=0;i<n;i++) //释放内存
free(s[i]);
free(s);
break;
}
}while(1);
return 0;
}

算是给你提个醒,你的第三题,如果矩阵的大小有限制,比如就是2×2或3×3的还好说,如果是任意大小的矩阵,光它除法的实现就是一个200分才会有人给你做的东西。最好别随便问这个,没几个人会给你写的。
bxf0817
2009-06-30 · TA获得超过2162个赞
知道小有建树答主
回答量:1348
采纳率:0%
帮助的人:1045万
展开全部
你这全是大题啊!谁能有那么多功夫帮你做啊!?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式