c语言while(n!=0)什么意思

#include<stdio.h>intmain(){intn,a=0,b,c;printf("输入一个整数:");scanf("%d",&n);c=n;//翻转whil... #include <stdio.h>

int main()
{
int n,a= 0,b, c;

printf("输入一个整数: ");
scanf("%d", &n);

c = n;

// 翻转
while( n!=0 )
{
b = n%10;
a =a*10 +b;
n /= 10;
}
// 判断
if (c ==a)
printf("%d 是回文数。", c);
else
printf("%d 不是回文数。",c);

return 0;
}
这段代码用来判断回文数的,但是为什么循环条件是n!=0而不是n>0
展开
 我来答
syht2000
高粉答主

2018-10-31 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
如果输入的整数是负数的话,你可以想想n!=0和n>0有什么差别,当然在c里while(n!=0)相当于while(n),当然如果只考虑正数的情况,用n>0也是可以的。
追问
但是while里面的循环体中n一直除以10,最后不是得到小数吗
追答
c里整数相除的结果也是整数,不会是小数,所以除到最后就是0,比如说2/10结果为0,而不是你想的0.2
cylz0703
2018-10-31 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4503万
展开全部
主要是输入的n指定为大于0的整数,所以取不到小于0,当然改成while(n>0)就更没问题了。
追问
但是while里面的循环体中n一直除以10,最后不是得到小数吗。
追答
n是整型变量,10是整型常量,n/10的结果是整除,比如15/10的结果是1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
u希m
2018-10-31 · TA获得超过264个赞
知道小有建树答主
回答量:242
采纳率:58%
帮助的人:28.5万
展开全部
当n不等于0时执行循环体。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式