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

2025-04-06 20:11:32
推荐回答(4个)
回答1:

你的思路没问题,有问题的可能是这一句while(c);,假如你输入的是非零的c,那么存在隐式转换就可能变成while(1);了,所以就退出了。
另外我想说一句的是,我很长时间没接触c语言,现在全都是asp.net和c#,说的对不对的你多试试。再就是编程序不要为了简化而简化,更不要为了显示“水平”而简化,程序写的越详细,注释越多越好(有点极端),就像你刚才写的while(c);规范的格式应该是while(c==0);我说这些你不要觉得不屑,随着你写程序越来越多,时间越来越长,你就会感觉这样做的必要性。有问题在留言吧

回答2:

不能单纯地使用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是无法实现的。

回答3:

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

实际测试结果如图:

回答4:

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;//函数返回,这个是无用代码,不写会有警告,或出错!
}