不报错!但是不能运行

mayuquan9158 2011-10-08 11:15:51
#include<stdio.h>
#include<malloc.h>
#define NULL 0
typedef struct linknode
{
int data;
struct linknode *next;
}node;
node *p,*q,*s,*head;//定义全部变量
int j=0,i;
//主函数
void main()
{
int x,y,cord;
node *creat();
void print(node *head);
void insert(node *head,int x,int y);
void search(node *head,int x);
int length(node *head);
void deletes(node * head,int x);
head=creat();
print(head);
do{
printf("\n 主菜单 \n");
printf(" 1 求链表长度 \n");
printf(" 2 插入一个元素 \n");
printf(" 3 查找一个元素 \n");
printf(" 4 删除一个元素 \n");
printf(" 0 结束程序运行 \n");
printf("-----------------------------------------\n");
printf(" 请输入您的选择(1, 2, 3, 4, 0)\n");
scanf("%d",&cord);
switch(cord)
{
case 1:printf("链表长度为j=%d",j=length(head));break;
case 2:
{
printf("请输入要插入元素的位置x:");
scanf("%d",&x);
printf("请输入插入的数据y:");
scanf("%d",&y);
insert(head,x,y);
print(head);
}break;
case 3:
{
printf("请输入要查找的元素x");
scanf("%d",&x);
search(head,x);
}break;
case 4:
{
printf("删除的数x=?");
scanf("%d",&x);
deletes(head,x);
print(head);
}break;
case 0:
{
exit(0);
}break;
}
}while(cord<=4&&cord>=0);
}
//*函数菜单



//建立一个单链表!
node * creat()
{
node *head,*p,*s;
int x;
head=(node*)malloc(sizeof(node));
p=head;
printf("请输入链表数据!\n");
while(x!=0)
{
scanf("%d",&x);
s=(node*)malloc(sizeof(node));
s->data=x;
p->next=s;
p=s;
}
head=head->next;
p->next=NULL;
return(head);
}
//输出链表
void print(node *head)
{
node *p;
p=head;
printf("输出链表!\n");
if(head==NULL)
printf("链表为空!");
else
{
while(p->next!=NULL)
{
printf("%d->",p->data);
p=p->next;
}
printf("%d",p->data);// 输出链表结束标志!
}
printf("\n");
}
//*查找某个结点
void search(node *head,int x)
{
node *p;
p=head;
while(p->data!=x&&p!=NULL)
p=p->next;
if(p!=NULL)
printf("找到了!\n");
else
printf("未找到!\n");
}
//求链表的长度
int length(node *head)
{
int n=0;
node *p;
p=head;
while(p!=NULL)
{
p=p->next;
n++;
}
return(n);
}
//插入某个结点
void insert(node *head,int y)
{
node *p,*q;
s=(node*)malloc(sizeof( node));
s->data=y;
q=head;p=head->next;
if(p!=NULL)
{
q=p;
p=p->next;
}
else{
q->next=s;
s->next=p;
}
}
//删除结点
void deletes(node * head,int x)
{
node *p,*q;
if(head==NULL) printf("链表为空!\n");
if(head->data==x)
{
p=head;
head=head->next;
free(p);
}
else
{
p=head;
while(p->next!=NULL&&p->next->data!=x) p=p->next;
if(p==NULL)
printf(" x 不存在!\n");
else
{
q=p->next;
p->next=q->next;
free(q);
}
}
}














...全文
182 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayuquan9158 2011-10-10
  • 打赏
  • 举报
回复
怎么还插不进去
mayuquan9158 2011-10-08
  • 打赏
  • 举报
回复
谢谢啊!
xiaohuh421 2011-10-08
  • 打赏
  • 举报
回复
光标移动到mian函数中第一句,按F9,然后再按F5,执行到断点后,F11进入函数,F10步过
mayuquan9158 2011-10-08
  • 打赏
  • 举报
回复
编程环境是VC++6.0,不太会
bdmh 2011-10-08
  • 打赏
  • 举报
回复
会不会调试
mayuquan9158 2011-10-08
  • 打赏
  • 举报
回复
void insert(node *head,int y)
{
//node *p,*q;
s=(node*)malloc(sizeof( node));
s->data=y;
//q=head;
if(head != NULL)
{
s->next = head->next;
head->next = s;
}
/*p=head->next;
if(p!=NULL)
{
q=p;
p=p->next;
}
else
{
q->next=s;
s->next=p;
} */
}
怎么有点糊涂!后面怎么都是说明啊?
mayuquan9158 2011-10-08
  • 打赏
  • 举报
回复
不错啊!谢谢了!常来看看我
xinshirn 2011-10-08
  • 打赏
  • 举报
回复
楼上真强大,向你致敬
尘缘udbwcso 2011-10-08
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<malloc.h>
#include <stdlib.h>

#define NULL 0
typedef struct linknode
{
int data;
struct linknode *next;
}node;
node *p,*q,*s,*head;//定义全部变量
int j=0,i;
//主函数
void main()
{
int x,y,cord;

node *creat();
void print(node *head);
void insert(node *head,int x);//改
void search(node *head,int x);
int length(node *head);
void deletes(node * head,int x);

head=creat();
print(head);
do{
printf("\n 主菜单 \n");
printf(" 1 求链表长度 \n");
printf(" 2 插入一个元素 \n");
printf(" 3 查找一个元素 \n");
printf(" 4 删除一个元素 \n");
printf(" 0 结束程序运行 \n");
printf("-----------------------------------------\n");
printf(" 请输入您的选择(1, 2, 3, 4, 0)\n");
scanf("%d",&cord);
switch(cord)
{
case 1:printf("链表长度为j=%d",j=length(head));break;
case 2:
{
//printf("请输入要插入元素的位置x:");
//scanf("%d",&x);
printf("请输入插入的数据y:");
scanf("%d",&y);
insert(head,y);//改
print(head);
}break;
case 3:
{
printf("请输入要查找的元素x");
scanf("%d",&x);
search(head,x);
}break;
case 4:
{
printf("删除的数x=?");
scanf("%d",&x);
deletes(head,x);
print(head);
}break;
case 0:
{
exit(0);
}break;
}
}while(cord<=4&&cord>=0);
}
//*函数菜单



//建立一个单链表!
node * creat()
{
node *head,*p,*s;
int x = 1;//改
head=(node*)malloc(sizeof(node));
p=head;
printf("请输入链表数据!\n");
while(x!=0)
{
scanf("%d",&x);
s=(node*)malloc(sizeof(node));
s->data=x;
p->next=s;
p=s;
}
s = head;//加
head=head->next;
free(s);//加
p->next=NULL;
return(head);
}
//输出链表
void print(node *head)
{
node *p;
p=head;
printf("输出链表!\n");
if(head==NULL)
printf("链表为空!");
else
{
while(p->next!=NULL)
{
printf("%d->",p->data);
p=p->next;
}
printf("%d",p->data);// 输出链表结束标志!
}
printf("\n");
}
//*查找某个结点
void search(node *head,int x)
{
node *p;
p=head;
while(p->data!=x&&p!=NULL)//
p=p->next;
if(p!=NULL)
printf("找到了!\n");
else
printf("未找到!\n");
}
//求链表的长度
int length(node *head)
{
int n=0;
node *p;
p=head;
while(p!=NULL)
{
p=p->next;
n++;
}
return(n);
}
//插入某个结点
void insert(node *head,int y)
{
//node *p,*q;
s=(node*)malloc(sizeof( node));
s->data=y;
//q=head;
if(head != NULL)
{
s->next = head->next;
head->next = s;
}
/*p=head->next;
if(p!=NULL)
{
q=p;
p=p->next;
}
else
{
q->next=s;
s->next=p;
} */
}
//删除结点
void deletes(node * head,int x)
{
node *p,*q;
if(head==NULL) printf("链表为空!\n");
if(head->data==x)
{
p=head;
head=head->next;
free(p);
}
else
{
p=head;
while(p->next!=NULL&&p->next->data!=x) p=p->next;
if(p==NULL)
printf(" x 不存在!\n");
else
{
q=p->next;
p->next=q->next;
free(q);
}
}
}

阿尼小码 2011-10-08
  • 打赏
  • 举报
回复
楼主在学数据结构吧,我这几天老看到链表,我们可以相互讨论学习
尘缘udbwcso 2011-10-08
  • 打赏
  • 举报
回复
void insert(node *head,int x,int y);

void insert(node *head,int y)
{
node *p,*q;
s=(node*)malloc(sizeof( node));
s->data=y;
q=head;p=head->next;
if(p!=NULL)
{
q=p;
p=p->next;
}
else{
q->next=s;
s->next=p;
}
}
这个函数的参数有问题
DeDeWo 2011-10-08
  • 打赏
  • 举报
回复
debug
mayuquan9158 2011-10-08
  • 打赏
  • 举报
回复
那该怎么定义呢
炼气士 2011-10-08
  • 打赏
  • 举报
回复
函数声明怎么都放到main中呢?
赵4老师 2011-10-08
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
AnYidan 2011-10-08
  • 打赏
  • 举报
回复
不抱错 --- 没有语法错误(一般compiler 只检查文件内的语法错误)
不运行 --- 大部分时候是逻辑错误,需要debug

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧