| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 331 人关注过本帖
标题:[求助]编译问题?
取消只看楼主 加入收藏
起点线
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-12-7
收藏
 问题点数:0 回复次数:0 
[求助]编译问题?

链表输入学生学号,姓名,成绩.然后删除最小成绩的那个成员..

在WIN-TC下面正常..在TC++3.0下面删除不了最小成绩的那个成员啊..

#include <stdio.h>
#include <stdlib.h>
#define S struct student
#define LEN sizeof(S)
S
{
int num;
char name[10];
int score;
S *next;
};

S *del(S *head,int n)
{
S *p1,*p2;
p1=p2=head;
while(n!=p1->score&&p1->next!=0) /*查找位置*/
{ p2=p1; p1=p1->next; }

if(p1->score==n)
{
if(p1==head) head=p1->next; /*删除头结点*/
else p2->next=p1->next; /*删除中间或尾结点*/
free(p1);
}
return head;
}

/*********主函数**********/

void main()
{
int min,n=0;
S *p1,*p2,*head;
p1=(S*)malloc(LEN);
scanf("%d",&p1->num);
getchar();
scanf("%s",p1->name);
getchar();
scanf("%d",&p1->score);
head=NULL;
while(1)
{
n++;
if(n==1) head=p1; /*头结点*/
else p2->next=p1; /*连接下一个结点*/
p2=p1;
p1=(S*)malloc(LEN); /*分配空间*/
scanf("%d",&p1->num);
if(p1->num==0) break;
getchar();
scanf("%s",p1->name);
getchar();
scanf("%d",&p1->score);
}
p2->next=0; /*尾结点为0*/
p1=head; /*重指头结点*/
while(p1!=0) /*输出*/
{
printf("%d %s %d\n",p1->num,p1->name,p1->score);
p1=p1->next;
}
printf("\n");
p1=head; /*头结点*/
min=p1->score;

/********查找最低成绩**********/
while(p1->score!=0)
{
if(p1->score<=min)
min=p1->score;
p1=p1->next;
}

printf("\nmin=%d\n",min); /*输出最低成绩*/
p1=del(head,min);
while(p1!=0)
{
printf("%d %s %d\n",p1->num,p1->name,p1->score);
p1=p1->next;
}
}

搜索更多相关主题的帖子: 编译 
2007-05-21 00:22
快速回复:[求助]编译问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015069 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved