当前位置: 代码迷 >> C语言 >> 119 十万火急 求救
  详细解决方案

119 十万火急 求救

热度:791   发布时间:2004-06-03 21:21:00.0
119 十万火急 求救

设有一批数据,具体如下:

学号

姓名

性别

英语

数学

导论

合计

平均

93101

Cai

M

75

85

80

93103

Du

M

78

66

77

94104

Fan

F

72

68

81

93105

Feng

F

70

85

75

93106

Gao

F

70

56

68

93107

He

M

85

51

72

93110

Jia

F

81

75

68

93112

Jiang

M

87

78

81

93113

Ke

M

61

71

75

93115

Ma

M

59

62

51

93120

Si

F

40

71

68

93122

Wan

F

81

63

73

请按下列要求完成:

1. 设计一种结构,创建一个单链表,按表中的顺序将每个学生的数据保存到该链表的每个结点中;

2. 计算每个学生的合计和平均成绩,并保存到对应结点中;

3. 依次输出该链表中每个学生的各项数据;

4. 重新建立一个新的有序链表,根据原链表中每个学生的合计或平均成绩,从高到低依次排列,若合计或平均成绩相等则以学号从小到大进行组织;

5. 依次输出该有序链表的数据。

具体格式:

1. 写出对应每一小题的算法,画出流程图;

2. 每一小题编写一个函数加以实现对应的功能;

通过主函数实现对各部分的调用。

请教那为大虾,帮助解决。小弟,实属困难.....

搜索更多相关的解决方案: 合计  数据  border  

----------------解决方案--------------------------------------------------------
呵呵~~~, 好象是简单的数据结构问题啊~~
----------------解决方案--------------------------------------------------------
没有写主函数,自己加上去吧!至于排序,我想着就不要我说了吧。
----------------解决方案--------------------------------------------------------

==================================================================

由于写得仓促,很多地方只写了关键,细节方面自己修改一下!

==================================================================

#include #include #include #define N 10

typedef struct node { long int num; char name[20]; char sex; float english; float maths; float daolun; float sum; float ave; struct node *llink,*rlink; }stud;

stud * creat(int n) { stud *p,*h,*s; int i; if((h=(stud *)malloc(sizeof(stud)))==NULL) { printf("不能分配内存空间!"); exit(0); } h->name[0]='\0'; h->llink=NULL; h->rlink=NULL; p=h; for(i=0;i〈n;i++) { if((s= (stud *) malloc(sizeof(stud)))==NULL) { printf("不能分配内存空间!"); exit(0); } p-〉rlink=s; printf("请输入第%d个人的学号",i+1); scanf("%l",s->num); printf("请输入第%d个人的姓名",i+1); scanf("%s",s->name); printf("请输入第%d个人的性别",i+1); scanf("%c",s->sex); printf("请输入第%d个人的英语成绩",i+1); scanf("%f",s->english); printf("请输入第%d个人的数学成绩",i+1); scanf("%f",s->maths); printf("请输入第%d个人的导轮成绩",i+1); scanf("%f",s->daolun); *(s->sun)=*(s->english)+*(s->maths)+*(s->daolun); *(s->ave)=*(s->sum)/3; s->llink=p; s->rlink=NULL; p=s; } h->llink=s; p->rlink=h; return(h); }

void print(stud *h) { int n; stud *p; p=h->rlink; printf("数据信息为:\n"); while(p!=h) { printf("%l \t",*(p->num)); printf("%s \t",&*(p->name)); printf("%c \t",*(p->sex)); printf("%f \t",*(p->english)); printf("%f \t",*(p->maths)); printf("%f \t",*(p->daolun)); printf("%f \t",*(p->sum)); printf("%f \t",*(p->ave)); p=p->rlink; printf("\n"); } }


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

小弟,在此暂且谢过;待小弟编译通过,定当重谢!!!!----每天泡上5小时!!!


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

楼上的大哥们,请问:

#include #include #include 这是什么意思啊?


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

包含文件嘛

回去多学学吧!


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

大哥,我还是做不了啊

是怎么回事啊??????

求救!!!!!!!!


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

一些细节方面还要修改一下,由于时间关系,你自己改吧.


----------------解决方案--------------------------------------------------------
排序好象还没有吗??

斑竹,那个排序怎么搞啊!!

小弟还是没有搞好。


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