找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1100|回复: 7

程序不能退出,希望各位找一下原因

[复制链接]
发表于 2009-11-5 01:02:55 | 显示全部楼层 |阅读模式 IP:江苏扬州
本人是一个菜菜鸟~~~
希望大家多多包涵~~~
这是我编的程序

#include<iostream.h>

struct emp //定义职工结构
{char name[8];
long id;
char sex;
int year;
emp*next;
};
void main()
{
emp *p,*s,*head;
head=NULL;
p=new emp;
cout<<"请输入职工的姓名(以0结束),ID,性别(M代表男性,F代表女性),年龄!"<<endl;
cin>>p->name>>p->id>>p->sex>>p->year;
while(1)
{if(head==NULL) head=p;
else s->next=p;
s=p;
p=new emp;
cin>>p->name>>p->id>>p->sex>>p->year;
if(p->name==0) break;
}
s->next=NULL;
delete p;

cout<<"谢谢使用,再见!"<<endl;
}

我想当名字输入0的时候退出循环,但是我输入0循环还在继续~~~
编译没有错误...
发表于 2009-11-5 01:02:56 | 显示全部楼层 IP:江苏扬州
name 是个char数组,那name = 0只是表示name是个NULL指针!
回复

使用道具 举报

发表于 2009-11-5 01:02:57 | 显示全部楼层 IP:江苏扬州
if(p->name=='0') break;

就ok了...
回复

使用道具 举报

发表于 2009-11-5 01:02:58 | 显示全部楼层 IP:江苏扬州
谢谢大家,问题己解决~~~
但是我还有一些问题:

3楼的高手:我按你改的话就会出现编译错误:

error C2440: '=' : cannot convert from 'const char' to 'char [8]'

但是改成 if(p->name[0]=='0') break

就可以运行成功~~~

我想问一下为什么3楼的改法就不行呢????

谢谢大家的指点~~~
回复

使用道具 举报

发表于 2009-11-5 01:03:00 | 显示全部楼层 IP:江苏扬州
说错了,编译错误为

error C2446: '==' : no conversion from 'int' to 'char *'

error C2040: '==' : 'char [8]' differs in levels of indirection from 'int'
回复

使用道具 举报

发表于 2009-11-5 01:03:01 | 显示全部楼层 IP:江苏扬州
哦!

是我没注意了....
回复

使用道具 举报

发表于 2009-11-5 01:03:03 | 显示全部楼层 IP:江苏扬州
你输入的0 是存在name[0]中...
回复

使用道具 举报

发表于 2009-11-5 01:03:04 | 显示全部楼层 IP:江苏扬州
谢谢3楼的解释~~
THANK
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-11-6 03:00 , Processed in 0.857562 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表