很急的问题,还没有解决,论坛上朋友帮改的程序,可是我还是不能运行,用TC2.0,请大家帮我试下,谢谢了,在线等。。。

xiaofeng3385 2005-04-09 05:51:06
我一运行出现一屏幕的乱七八遭的东西,机器也叫,
大家请帮我改改吧,谢谢了。

#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define null 0
#define len sizeof(struct kc)

struct kc{
int keid;
char kename[20];
int score;
struct kc *next;
}*p;
int n;

struct kc * create(void)
{
struct kc *p1,*p2;
struct kc *head;
/*struct kc *next; */
n=0;
p1=p2=(struct kc *)malloc(len);
/*p1=p2=&kc1; */
printf(" qing shuru kecheng id,score,name\n");
scanf("%d,%d,%s",&p1->keid,&p1->score,&p1->kename);
head=null;
while(p1->keid !=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct kc*)malloc(len);
scanf("%d,%d,%s\n",&p1->keid,&p1->score,&p1->kename);
};
p2->next=null;
return(head);
}

void print(struct kc *head)
{
struct kc *p;
printf("fenshushi::");
p=head;
if(head !=null)
while(p!=null)
{
printf("%d,%s,%d\n",p->keid,p->kename,p->score);
p=p->next;
}
}

void main()
{
printf("shuru kecheng\n");

p=create();

print(p);
scanf("%d",&n);
return ;

}
...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
llf_hust 2005-04-10
  • 打赏
  • 举报
回复
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define null 0
#define len sizeof(struct kc)

struct kc{
int keid;
char kename[20];
int score;
struct kc *next;
}*p;
int n;

struct kc * create(void)
{
struct kc *p1,*p2;
struct kc *head;
/*struct kc *next; */
n=0;
p1=p2=(struct kc *)malloc(len);
/*p1=p2=&kc1; */
printf(" qing shuru kecheng id,score,name\n");
scanf("%d,%d,%s",&p1->keid,&p1->score,p1->kename);//&p1->kename 改为p1->kename
head=null;
while(p1->keid !=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct kc*)malloc(len);
scanf("%d,%d,%s\n",&p1->keid,&p1->score,p1->kename);//&p1->kename 改为p1->kename
};
p2->next=null;
return(head);
}

void print(struct kc *head)
{
struct kc *p;
printf("fenshushi::");
p=head;
if(head !=null)
while(p!=null)
{
printf("%d,%s,%d\n",p->keid,p->kename,p->score);
p=p->next;
}
}

void main()
{
printf("shuru kecheng\n");

p=create();

print(p);
scanf("%d",&n);
return ;

}

你输入1,2,a
0
后输出就没有乱码了
xiaofeng3385 2005-04-10
  • 打赏
  • 举报
回复
谢谢大家,问题解决了。
kobefly 2005-04-09
  • 打赏
  • 举报
回复
再试试看呢
如果输入的格式是scanf("%d,%d,%s",&p1->keid,&p1->score,&p1->kename);
即格式控制串中有,的话,应该输入的时候加,

例如1,11,adf输入
否则就出现问题了
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define null 0
#define len sizeof(struct kc)

struct kc{
int keid;
char kename[20];
int score;
struct kc *next;
}*p;
int n;

struct kc * create(void)
{
struct kc *p1,*p2;
struct kc *head;
/*struct kc *next; */
n=0;
p1=p2=(struct kc *)malloc(len);
/*p1=p2=&kc1; */
printf(" qing shuru kecheng id,score,name\n");
scanf("%d,%d,%s",&p1->keid,&p1->score,&p1->kename);
head=null;
while(p1->keid !=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct kc*)malloc(len);
scanf("%d %d %s\n",&p1->keid,&p1->score,&p1->kename);
};
p2->next=null;
return(head);
}

void print(struct kc *head)
{
struct kc *p;
printf("fenshushi::");
p=head;
if(head !=null)
while(p!=null)
{
printf("%d,%s,%d\n",p->keid,p->kename,p->score);
p=p->next;
}
}

void main()
{
printf("shuru kecheng\n");

p=create();

print(p);
scanf("%d",&n);
return ;

}
zengwujun 2005-04-09
  • 打赏
  • 举报
回复
1,11,adf输入
yin_liang_ 2005-04-09
  • 打赏
  • 举报
回复
在creat函数的scanf语句,把&p1->kename前面的&符号去掉。再试试
xiaofeng3385 2005-04-09
  • 打赏
  • 举报
回复
晕,我这怎么会有问题,
我输入的格式应该不会错哦? 1 11 adf 这样子输入的呀/
zengwujun 2005-04-09
  • 打赏
  • 举报
回复
我这运行没问题啊,你的输入格式不对?
milozy1983 2005-04-09
  • 打赏
  • 举报
回复
我运行没问题,你输入的时候只要按照1,50,sfsfd这样的正确输入应该就没问题啊,只不过主函数里最后的停顿用getch()最好

void main()
{
printf("shuru kecheng\n");

p=create();

print(p);
getch();
return ;

}

69,369

社区成员

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

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