发香雾:[c语言]n/=10是什么意思?

来源:百度文库 编辑:中科新闻网 时间:2024/05/08 07:43:03
#include <stdio.h>
main()
{ int n ;
scanf("%d",&n);
while(n){
printf("%d", n%10);
n/=10;}
printf("\n");
}
这里的n/=10啥意思啊?
这是输入一个整数将他逆序输出的程序
我还是不知道为什么会逆序啊
晕,明明是可以输入N位数的啊,不信你用这个代码调试一下

n%10 ,是得到n除以10以后的余数
n/=10 ,相当于n=n/10,是得到n除以10的商的整数部分
举个例子:
假设输入的n为123
当n不为0
先输出123%10 ==>3 (123=12*10+3,余数为3)
然后把12给n (123除以10的商的整数部分为12)
12不为0
输出12%10 ==>2 (12=1*10+2,余数为2)
然后把1给n (12除以10的商的整数部分为1)
1不为0
输出1%10 ==>1 (1=0*10+1,余数为1)
然后把0给n (1除以10的商的整数部分为0)
n为0,结束.

n%10的意思就是把n除以10付与n!

关于问题补充:

你看,你输出的第一步是执行n%10,这个式子得到的是n的个位数

,(“%”为求余运算符)而你的第二步为n/10,这句代码是输出整

数部分,余数不记!这样按顺序输出,就可以逆序了。

从你这段代码来看是有错误的:一,代码错误。二,根本不能够满

足你所说的“这是输入一个整数将他逆序输出的程序”。(就算代

码没有错,也只能是一个两位数)

我想你编这段代码的本意可能只是想把一个两位数的个十位颠倒

!(从你的代码来看只能是这样的)

错误是要自己找的。这样才会进步!

n/=10就是n=n/10

比如你输入n为123,那么在循环里:
1、输出123%10,即3,然后n=n/10=123/10=12;
2、输出12%10,即2,然后n=n/10=12/10=1;
3、输出1%10,即1,然后n=n/10=1/10=0;
4、此时n为0,不满足循环条件,退出循环。

n/=10 你可以分开理解 n=n/10 也就是说把 n /10 的值给N,C++里经常有这种用法比如

a+=5
a-=9
a++
++a
a--
--a

这些都差不多不过 ++ 放在前和后有区别的,你仔细看下书,一般书上都有,如果是C语言好象没有这种用法,C++有!

相当于n=n/10,就是n的值除以10再赋给n,如果n是整数,就是赋商,实数就赋精确6位的实数值