| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 756 人关注过本帖
标题:[求助]do while语句的应用问题,不知这个do该放何处?
只看楼主 加入收藏
jiang520
Rank: 1
等 级:新手上路
帖 子:207
专家分:0
注 册:2006-9-13
收藏
 问题点数:0 回复次数:10 
[求助]do while语句的应用问题,不知这个do该放何处?

这是一个同学通迅录,相当于一个电话薄吧.
以下是源程序,主要原因是当我执行一次了这个程序,想执行下一次时就会出问题了,
头一次没什么问题的,只是不知道这个do while 语句该怎么放,才能使下一次不至于出错,
或者还是需要添加点什么程序代码,不明白了,汗..........
你们看看就知道 了,小弟在此先谢过...(第二次执行时少了一个输入姓名的)

#include "stdio.h"
#define NUMber 3

struct mem{
char name[20];
char photo[12];
};

main(){
int i;
char mm;

do{

struct mem man[NUMber];

for(i=0;i<NUMber;i++)
{
printf("请输入联系人姓名:\n");
gets(man[i].name);
printf("请输入联系人电话号码:\n");
gets(man[i].photo);
}
printf("以下是你电话薄里详细联系方式:\n");
printf("姓名:\t\t\t电话号码:\n");
for(i=0;i<NUMber;i++)
printf("%s\t\t\t%s\n",man[i].name,man[i].photo);

printf("是否继续:Y/N?\n");
fflush(stdin);
scanf("%c",&mm);
}
while(mm=='Y'||mm=='y');
}

搜索更多相关主题的帖子: 语句 应用 
2006-10-17 16:01
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
得分:0 



struct mem man[NUMber];
do{

for(i=0;i<NUMber;i++)
{
printf("请输入联系人姓名:\n");
gets(man[i].name);
printf("请输入联系人电话号码:\n");
gets(man[i].photo);
}
printf("以下是你电话薄里详细联系方式:\n");
printf("姓名:\t\t\t电话号码:\n");
for(i=0;i<NUMber;i++)
printf("%s\t\t\t%s\n",man[i].name,man[i].photo);

printf("是否继续:Y/N?\n");
fflush(stdin);
scanf("%c",&mm);
}
while(mm=='Y'||mm=='y');
}

2006-10-17 16:09
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
定义放在前面.

倚天照海花无数,流水高山心自知。
2006-10-17 16:13
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

#include "stdio.h"
#define NUMber 3
楼主注意格式
#include<conio.h>
struct mem{
char name[20];
char photo[12];
};

int main()
{
int i;
char mm;
struct mem man[NUMber];
do{
fflush(stdin);
for(i=0;i<NUMber;i++)
{
printf("请输入联系人姓名:\n");
gets(man[i].name);
printf("请输入联系人电话号码:\n");
gets(man[i].photo);
}
printf("以下是你电话薄里详细联系方式:\n");
printf("姓名:\t\t\t电话号码:\n");
for(i=0;i<NUMber;i++)
printf("%s\t\t\t%s\n",man[i].name,man[i].photo);
printf("是否继续:Y/N?\n");
scanf("%c",&mm);
}while(mm=='Y'||mm=='y');
return 0;
}


谁有强殖装甲第二部,可以Q我460054868
2006-10-17 16:21
jiang520
Rank: 1
等 级:新手上路
帖 子:207
专家分:0
注 册:2006-9-13
收藏
得分:0 
谢谢大家了,
不过这 fflush(stdin); 为什么要放在前面呢? 清除输入缓冲区?为什么不可以在执行for语句后才清除呢?
有点不是很明白,
哦,谢谢提醒,我会注意格式的...

努力,努力吧,未来的天空,那一片湛蓝总会属于我的~
2006-10-17 16:42
jiang520
Rank: 1
等 级:新手上路
帖 子:207
专家分:0
注 册:2006-9-13
收藏
得分:0 
哦,这个头文件是什么意思? (#include<conio.h> )
还没有找到呵呵...

努力,努力吧,未来的天空,那一片湛蓝总会属于我的~
2006-10-17 16:48
longerhe
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-10-10
收藏
得分:0 
因为缓冲区可能会有以前遗留下来的残余...
2006-10-17 16:49
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
虽然我不是很明白fflush(stdin); 细节,听人说是清除输入缓冲区,但有规律,应该受scanf影响,或者你可以将放在scanf后面.

谁有强殖装甲第二部,可以Q我460054868
2006-10-17 16:53
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用jiang520在2006-10-17 16:48:07的发言:
哦,这个头文件是什么意思? (#include<conio.h> )
还没有找到呵呵...

我刚调试你的程序,忘了把它删


谁有强殖装甲第二部,可以Q我460054868
2006-10-17 16:56
jiang520
Rank: 1
等 级:新手上路
帖 子:207
专家分:0
注 册:2006-9-13
收藏
得分:0 
呵呵,哦,不过我也试了,不用它的就可以的嘛,
嗯,谢谢了.
那 fflush() 这东西就慢慢去意会了...
多调试就OK,一起进步~~~~~!

努力,努力吧,未来的天空,那一片湛蓝总会属于我的~
2006-10-17 17:02
快速回复:[求助]do while语句的应用问题,不知这个do该放何处?
数据加载中...
 
   



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

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