50 1.8 stm什么时候上:救命呀!!编程题难死人呀~~救命呀~~各位天使大姐大哥

来源:百度文库 编辑:高考问答 时间:2024/04/25 08:34:15
已知有30名学生的记录(学号、姓名、成绩)自定,编一
C程序:
A. 建立一个30名学生数据的动态链表
B. 对满足某一条件的学生结点从链表中删除
C. 将一个新学生记录按学号顺序插入链表中
D 以上各个功能均编写成子函数,由主函数调用实现。
应用方面:
结构、链表

#include <stdio.h>
#include <MALLOC.H>
#include <stdlib.h>
typedef struct Number
{
int data;
struct Number *next;
}Number;

void main()
{
Number head;
Number *p,*q,*t;
char input;
int temp,i,howmany=0,j;

printf("Please input the number string:\n");

p=&head;
p->data=NULL;

while((input=getchar())!='0')
{
temp=atoi(&input);
q=(Number *)malloc(sizeof(Number));
q->data=temp;
p->next=q;
p=q;
++howmany;
}
p->next=NULL;
/*开始比较*/
p=head.next;
q=&head;
t=p->next;

for(i=1;i<=howmany;++i)
{
for(j=i+1;j<=howmany;++j)
{
if (p->data<=t->data)
{
q=p;
p=t;
t=t->next;
}
else
{
q->next=t;
if(t->next==NULL)
{
p->next=NULL;
}
else
{
p->next=t->next;
}
t->next=p;

q=p;
p=t;
t=t->next;
}
}
}

/*输出*/
printf("New order number string:\n");
p=head.next;
while(p)
{
printf("%d",p->data);
p=p->next;
if (p)
{
printf("->");
}
}
//getch();

}
这是第一个问题的答案,但是比较那个部分有点问题,对于输入210测试没有问题,你可以改一改

http://post.baidu.com/f?kz=6598859
看看吧
差不多的

偷懒的学生,绝对不管