这是一道C语言的题内容如下:

“建立一个结构体,含有n名学生的通讯录,对这n名学生按姓名进行排序。”谢谢!我是一初学者,帮帮忙!请按字母排列!谢谢了!急用!!!... “建立一个结构体,含有n名学生的通讯录,对这n名学生按姓名进行排序。”谢谢!我是一初学者,帮帮忙!
请按字母排列!谢谢了!急用!!!
展开
 我来答
85hzc
2009-07-07 · TA获得超过110个赞
知道答主
回答量:148
采纳率:0%
帮助的人:53.2万
展开全部
用链表来做
定义一个结构体:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct stu
{
int num;// 学生学号
char name[10];//学生姓名

struct stu *next;
};

int main()
{
int x,num;
char name[10],temp_str[2];
struct stu *h,*p;

struct stu *head = (struct stu*)malloc(sizeof(struct stu));
head->next = NULL;

printf("Enter num (0 for end):");
scanf("%d",&num);
gets(temp_str);

while(num)
{
h = head;
printf("Enter name:");
scanf("%d %s",name);
gets(temp_str);

p = (struct stu *)malloc(sizeof(struct stu));
p -> next = NULL;

p->num = num;
strcpy(p->name,name);

while((h->next != NULL) && strcmp(h->next->name,p->name) > 0))
{
h = h->next;
}
p -> next = h -> next;
h -> next = p;

printf("Enter num(0 for end):");
scanf("%d",&num);
gets(temp_str);
}

printf("\n\tThe list as below\n");
printf("\tname\tnum\n");
h = head;
while(h -> next != NULL)
{
h = h->next;
printf("\t%s\t%d\n",h->name,h->num);
}
}

还没调试 有问题补充
lgq19851005
2009-07-07 · 超过49用户采纳过TA的回答
知道答主
回答量:355
采纳率:0%
帮助的人:188万
展开全部
你也没说按什么排序,是比划还是按字母之类的排序,没说清楚不好帮你做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式