c语言用循环语句实现重复循环

用循环语句实现用户的重复输入,直到输入选择为“0”时结束循环若选择1,则显示pleaseinput;若选择2,则显示pleaseinputnumber若选择0,则显示th... 用循环语句实现用户的重复输入,直到输入选择为“0”时结束循环
若选择1,则显示please input;
若选择2,则显示please input number
若选择0,则显示thank you
若选择其他,则显示error

程序
#include<stdio.h>
#include<stdlib.h>

int main(){
int c;
do{
scanf("%d",&c);
switch(c)
{

case 0:
printf("thank you\n");
break;
case 1:
printf("please input\n");
break;
case 2:
printf("please input number\n");
break;
default:
printf("error\n");
break;
}
}while(c);

getch();
}
我每次输入一个值出现一个对应的结果后,再输入其它值的时候程序就自动关闭了。如何才能做到,我输入一个值出现一个对应的结果后,可以再输入其它的值出现其它的结果?
展开
 我来答
匿名用户
2013-01-21
展开全部
你的思路没问题,有问题的可能是这一句while(c);,假如你输入的是非零的c,那么存在隐式转换就可能变成while(1);了,所以就退出了。
另外我想说一句的是,我很长时间没接触c语言,现在全都是asp.net和c#,说的对不对的你多试试。再就是编程序不要为了简化而简化,更不要为了显示“水平”而简化,程序写的越详细,注释越多越好(有点极端),就像你刚才写的while(c);规范的格式应该是while(c==0);我说这些你不要觉得不屑,随着你写程序越来越多,时间越来越长,你就会感觉这样做的必要性。有问题在留言吧
千锋教育
2015-10-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
不能单纯地使用if,可以配合函数或者goto跳转来实现。比如
int start = 1;
int end = 100;
int s = 0;
//以上是通用定义,我就不写多次了

//第一种方法,用goto
begin:
if(start<=end)
{
s += start;
start++;
goto begin;
}
//第一种方法结束
//第二种方法,函数递归

int function(int start,int end)
{
if(start <= end)
return start + function(start+1,end);
else
return 0;
}
以上两种方法可以在不使用for和while的前提下实现累加,但是单纯用if是无法实现的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-21
展开全部

程序没有问题,可能是你输入有问题,输入0之后是不可能再输入其他数的,

实际测试结果如图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_whales
推荐于2017-12-16 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:506万
展开全部
int main(){
int c=0;//防止输入出错,c没有赋值!
do{
scanf("%d",&c);
switch(c)
{
case 0://c==0,函数返回,也可以用 goto 跳出循环,或者加标志进入下一轮前先判断!
printf("thank you\n");
while('q'!=getch());
return 0;//函数在这里返回

case 1:
printf("please input\n");
break;
case 2:
printf("please input number\n");
break;
default:
printf("error\n");
break;
}
}while(1);//不管c是否为零!
return 0;//函数返回,这个是无用代码,不写会有警告,或出错!
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jalsary
2013-09-03 · 超过18用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:47万
展开全部
#include<stdio.h>
#include<stdlib.h>

int main(){
int c;
int flag=0;
do{
if(flag==1)
break;
else{
scanf("%d",&c);
switch(c)
{

case 0:
printf("thank you\n");
flag=1;
break;
case 1:
printf("please input\n");
break;
case 2:
printf("please input number\n");
break;
default:
printf("error\n");
break;
}
}
}while(c);

getchar();
return 0;
}

这样添加一个判断标志可以实现,但是我觉得最好先判断每次的输入是否满足要求,不满足直接输出error,满足的话分情况输出thans you 什么的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式