紧急!C语言问题 、快点、速度、今晚就要

我朋友明天要答辩
今晚要代码
麻烦各位朋友帮帮忙呀
1.根据高数,英语,物理,编程,马哲五门学分总成绩评出一等奖1名,二等奖2名,三等奖3名,编写代码;

2.根据英语成绩决定2个出国留学机会,编写代码.

01 wang 24 35 46 57 68

算法其实就是先排序,取前几名的获奖或出国呗!正常人都知道(这些都是她说的,我不懂……)有米有高手明白呀
02 shen 23 34 45 56 67

07 zhang 40 50 60 70 80

10 he 14 25 36 47 58

12 liulei 80 83 86 89 92

22 huang 62 64 66 68 70

用这10组数据做上面两道题
给的10组数据要先进行排序,第一个是按总分由高到低排序,第二个是按英语分数由高到低排序.并且前边的学号和姓名要跟着成绩走

绚丽的彩虹92<绚丽的彩虹92> 15:41:33
你那边什么环境啊!竟然吞了4组数据!
我把剩下4组再给你,接好了 !
怡然自得1992 15:41:46

恩恩
绚丽的彩虹92<绚丽的彩虹92> 15:42:36
04 liu 99 99 99 99 99
怡然自得1992 15:42:26
好了没
恩恩
绚丽的彩虹92<绚丽的彩虹92> 15:42:55
06 zhao 44 55 66 77 88
08zhu 73 75 77 79 81
20 qiu 84 85 86 87 88

#include <stdio.h>
#include <stdlib.h>
#define N 100

struct student
{
char number[14];
char name[10];
int grade[5];
int score;
};

main()
{
int i=0,j=0,n=0,ww;
struct student temp[N]={0},temp_change;
FILE *fp;
fp=fopen("d:\\score.txt","r");
if(fp==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
system("cls");
while(!feof(fp))
{
ww=fscanf(fp,"%23s%15s",temp[n].number,temp[n].name);
if(ww==-1)
break;
for(j=0;j<5;j++)
{
fscanf(fp,"%d",&temp[n].grade[j]);
}
n++;
}

for(i=0;i<n;i++)
{
for(j=0;j<5;j++)
{
temp[i].score=temp[i].score+temp[i].grade[j];
}
}

for(i=0;i<n;i++)//冒泡排序法错了,你的排序根本没有起作用
{
for(j=0;j<n-1-i;j++)
{
if(temp[j].score<temp[j+1].score)
{
temp_change=temp[j];//这里交换的是结构图类型变量,而不能只交换score,否则人名是不会跟着走的
temp[j]=temp[j+1];
temp[j+1]=temp_change;
}
}
}

printf("一等奖:\n%-5s%5s\n",temp[0].number,temp[0].name);
for(i=1;i<=2;i++)
{
printf("二等奖:\n%-5s%5s\n",temp[i].number,temp[i].name);
}
for(i=3;i<=5;i++)
{
printf("三等奖:\n%-5s%5s\n",temp[i].number,temp[i].name);
}

for(i=0;i<n-1;i++)//这儿的注释同上
{
for(j=0;j<n-1-i;j++)
{
if(temp[j].grade[1]<temp[j+1].grade[1])
{
temp_change=temp[j];
temp[j]=temp[j+1];
temp[j+1]=temp_change;
}
}
}

printf("可以出国的同学为:\n");

for(i=0;i<=1;i++)
{
printf("%-5s%5s\n",temp[i].number,temp[i].name);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-22
你也要把问题描述清楚啊!追问

怎么描述清楚呀 我不懂什么叫做C语言 我刚刚高考完

是我的朋友明天要答辩用的 急死我了

做好了加分哈

第2个回答  2011-06-22
你朋友真牛逼,找高中生帮忙。其实一点都不难,一个结构体数组,两个排序就Ok了。找个稍懂c的就行,我是爱莫能助了,没空做追问

不要酱紫嘛~ 朋友就要互相帮助呀 虽说是高中生啦 也不要这样嘛、、、

第3个回答  2011-06-22
真不难。。慢的也就2个小时搞定了。。
不过。。晚上工会活动啊~~~星期2,星期3。。你懂得追问

我不懂 呜呜呜呜…… 帮帮我的朋友吧

追答

留下邮箱。。晚上发给你。。害我下班前话半个小时写一遍。。晚下班了4分钟。

第4个回答  2011-06-22
#include <stdio.h>
#define N 10
typedef struct student
{
char NO[5];
char name[10];
int math;
int eng;
int phy;
int pro;
int phi;
int sum;
}std;

std a[N]={
{"01","wang",24,35,46,57,68,0},
{"02","shen",23,34,45,56,67,0},
{"04","liu",99,99,99,99,99,0},
{"06","zhao",44,55,66,77,88,0},
{"07","zhang",40,50,60,70,80,0},
{"08","zhu",73,75,77,79,81,0},
{"10","he",14,25,36,47,58,0},
{"12","liulei",80,83,86,89,92,0},
{"20","qiu",84,85,86,87,88,0},
{"22","huang",62,64,66,68,70,0}
};

int main()
{
int i,j;
std *p1,*p[N];
for(i=0;i<N;i++)
p[i]=&a[i];
for(i=0;i<N;i++)
p[i]->sum=p[i]->math+p[i]->eng+p[i]->phy+p[i]->pro+p[i]->phi;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(p[i]->sum<p[j]->sum)
{
p1=p[i];
p[i]=p[j];
p[j]=p1;
}
printf("获奖同学为:\n");
for(i=0;i<1;i++)
printf("一等奖为: %s \n",p[i]->name);
printf("二等奖为: ");
for(i=1;i<3;i++)
printf("%s ",p[i]->name);
printf("\n三等奖为: ");
for(i=3;i<6;i++)
printf("%s ",p[i]->name);
printf("\n");
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(p[i]->eng<p[j]->eng)
{
p1=p[i];
p[i]=p[j];
p[j]=p1;
}
printf("可以出国的两位同学为:\n");
for(i=0;i<2;i++)
printf("%s ",p[i]->name);
printf("\n");
return 0;
}

紧急!C语言问题 、快点、速度、今晚就要
include <stdio.h> include <stdlib.h> define N 100 struct student { char number[14];char name[10];int grade[5];int score;};main(){ int i=0,j=0,n=0,ww;struct student temp[N]={0},temp_change;FILE *fp;fp=fopen("d:\\\\score.txt","r");if(fp==NULL){ printf("打...

一道C语言编程题,超急!!今晚截至!!望高手帮忙
include "iostream"\/\/标准输入输出 include <vector>\/\/vector头文件 using namespace std;\/\/命名空间 int main(){ vector<int> vec;for(int i=0;i<10;++i){ int m_a;cin>>m_a;\/\/输入一个整形到m_a vector<int>::iterator pos=vec.begin();\/\/指向vec的第一个元素 while(pos!=vec....

C语言问题,高手速度快点进来
include <stdio.h> int main(){ long m,n,sum=0;scanf("%ld",&n);while(n!=0){ m=n%10;sum=sum+m;n=n\/10;} printf("sum=%ld\\n",sum);} 不用循环也可以,多写几次就行,不过,我觉得还是循环简单

C语言 代码问题(速度!急急急急急急急急急急急急!!!)
i=0 a[0]=1;for(j=0;j<=6;j++)(1,5,3,2,4,2,2)i=1 a[1]=5;执行:for(j=0;j<=6;j++){ if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t;} } (5,1,3,2,4,,2,2)每次j都从数组的第一个开始进行比较 for(j=0;j<=6;j++) --这句??? 应为:for(...

...字符串。。麻烦高手们帮下忙。。有点急。速度快点还能多赏点分哦...
include<stdio.h> include<string.h> void main(){ char str[10];while( scanf("%s",str) != EOF)printf("%s\\n",str);} 参考资料:chat

c语言问题请教高手急 !!!急!!!请速来
void checktriangle(int SideA, int SideB, int SideC){ if (SideA == SideB && SideB == SideC)printf("That\\'s an equilateral triangle.\\n");else if (SideA == SideB || SideA == SideC || SideB == SideC)printf("That\\'s an isoceles triangle.\\n");else printf("That...

订正2道c语言题,求解过程,速度,急,答完立即采纳!
str[1]); \/\/ 第2个若小于 s, s 里放第2个。printf("%s\\n",s); \/\/ 输出最小的。第二题,注意 有没有 break和 continue;k 的变化和 c的字符变化:k is 1, c is B: 打印 k is 3, c is C: 打印 & k is 4, c is D: 打印 *& k is 5, c is A: 打印 ...

初级C语言求助 速度
回答:程序1: while(n<20)\/\/h要小写,n<20 程序2: 输入用scanf("%s",str); 输出用scanf("%c",str[i]);

用C语言做(输入数据如下:先跑的速度(慢),先跑的时间,后跑的速度(快...
include <stdio.h> int main(){ int Speed_F,Speed_L;float time;printf("请输入先跑的速度,时间:");scanf("%d%lf",&Speed_F,&time);printf("请输入后跑的速度:");scanf("%d",&Speed_L);printf("追击时间:%f.\\n",time*Speed_F\/(Speed_L-Speed_F));return 0;} ...

C语言问题,高手速度进来
include <stdio.h> void main(){ int ch;scanf("%d",&ch);putchar(ch);getch();} 结果自己试一试,比如输入65,输出A,输入97,输出a

相似回答
大家正在搜