当前位置: 代码迷 >> C语言 >> j请教各位大虾!!!c语言难题!!!急!!!
  详细解决方案

j请教各位大虾!!!c语言难题!!!急!!!

热度:300   发布时间:2005-03-24 15:58:00.0
j请教各位大虾!!!c语言难题!!!急!!!

按如下要求编写程序,要求能够输出正确运行结果。 (1)输入20个学生记录(每个学生记录包括学号、姓名、性别、年龄、成绩),组成结构体数组,然后按成绩由高到低的次序排序并将排序结果写入文件中,最后读取文件,输出排序结果。 例如,输入信息如下: Num name sex age score 1 Liping M 19 80 2 Zhangtao M 20 86 3 Zhaodan F 19 82 4 Liupeng M 20 78 5 Wenli F 20 89 6 Hezhen M 20 92 ...

输出结果如下: num name sex age score 6 Hezhen M 20 92 5 Wenli F 20 89 2 Zhangtao M 20 86 3 Zhaodan F 19 82 1 Liping M 19 80 4 Liupeng M 20 78 ... (2)设有3位候选人参加选举,15人投票,输入投票情况,按得票顺序对候选人进行排序并按排序结果写入文件中,最后读取文件,输出排序结果。 例如,输入信息如下: jerry tom jerry droopy jerry droopy ... 输出结果如下: jerry 8 droopy 5 tom 2

搜索更多相关的解决方案: c语言  难题  

----------------解决方案--------------------------------------------------------

用结构体数组相对简单的了. #include <stdio.h> typedef struct student{ char num[20]; char name[10]; char sex; int score; }STU; #define N 2 STU stu[N]; void input(); void output(); void sort(); void main() {

input(stu); output(stu); sort(stu); output(stu); } void input(STU stu1[]) { int i; FILE *fp; fp=fopen("c:\\temp.dat","wb"); if(fp==NULL){ printf("can't open this file"); exit(1); } for(i=0;i<N;i++){ printf("please input student number:"); scanf("%s",stu1[i].num); getchar(); printf("please input student name:"); scanf("%s",stu1[i].name); getchar(); printf("please input student sex:"); scanf("%c",&stu1[i].sex); getchar(); printf("please input student score:"); scanf("%d",&stu1[i].score); fprintf(fp,"%s,%s,%c,%d\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].score); } fclose(fp); } void output(STU stu2[]) { int i; printf("\n\n num name sex score\n"); for(i=0;i<N;i++){ printf("%20s%10s%5c%10d\n",stu2[i].num,stu2[i].name,stu2[i].sex,stu2[i].score); } } void sort(STU stu3[]) { STU stud; int i,j; for(i=0;i<N-1;i++) for(j=0;j<N-i-1;j++){ if(stu3[j].score<stu3[j+1].score){ stud=stu3[j]; stu3[j]=stu3[j+1]; stu3[j+1]=stud; } } }


----------------解决方案--------------------------------------------------------
还有年龄没有加入,自己来吧.令第二题不再写.
楼主解释一下投票是控制投啊,还是随即投的啊???/?
----------------解决方案--------------------------------------------------------
楼上的佩服佩服呀
----------------解决方案--------------------------------------------------------
牛!!
----------------解决方案--------------------------------------------------------
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
main()
{char a[3][20],b[20];
  int aa[3],i,j;
printf("Input three person name:\n");
for(i=0;i&lt;3;i++)
{aa[i]=0;
scanf("%s",a[i]); }
printf("input name\n");
for(j=0;j&lt;15;j++)
{
loop:scanf("%s",b);
for(i=0;i&lt;3;i++)
if(strcmp(a[i],b)==0) break;
if(i&gt;=3) {printf("input error!\n"); goto loop;}
aa[i]++;
}
printf("The result:\n");
for(i=0;i&lt;3;i++)
printf("%-10s:%5d\n",a[i],aa[i]);
getch();
}

[此贴子已经被作者于2005-3-25 20:14:11编辑过]



----------------解决方案--------------------------------------------------------
最后读取文件,输出排序结果!

好象没达到要求?
----------------解决方案--------------------------------------------------------
差得远了,加油空前

----------------解决方案--------------------------------------------------------
我说神,你也别老是灌水,是不是把常见的作业都写一次,帮帮这些小学弟吗
----------------解决方案--------------------------------------------------------
还不知那些是个什么东东,差得远呀!
----------------解决方案--------------------------------------------------------
  相关解决方案