这程序有几个问题搞不懂
本帖最后由 2862593577 于 2020-3-2 10:17 编辑#include <stdio.h>
void main()
{
unsigned int num; //待输入的4位数的整数
int a, b, c, d, num_r;//a,b,c,d分别为个,十,百,千位的数字
int i = 0; //i++,++i
int j = 10;//j--,--j
printf("**********开始*********\n");
printf("请输入一个4位数的整数:\n");
scanf_s("%d", &num);
a = num % 10; //原4位数的个位,转换后4位数的千位
b = num / 10 % 10; //原4位数的十位,转换后4位数的百位
c = num / 100 % 10; //原4位数的百位,转换后4位数的十位
d = num / 1000; //原4位数的千位,转换后4位数的个位
num_r = 1000 * a + 100 * b + 10 * c +d;//转化后的四位数
printf("第一步:i=%d,j=%d; \t你输入的数是%d,数位反转后变成%d\n", i, j, num, num_r);
printf("第二步:i++=%d,j--=%d;\t你输入的数是%d,数位反转后变成%d\n", i++, j--, num, num_r);
printf("第三步:i=%d,j=%d; \t你输入的数是%d,数位反转后变成%d\n", i, j, num, num_r);
printf("第四步:++i=%d,--j=%d;\t你输入的数是%d,数位反转后变成%d\n", ++i, --j, num, num_r);
printf("第一步:i=%d,j=%d; \t你输入的数是%d,数位反转后变成%d\n", i, j, num, num_r);
printf("**************结束*************\n");
}
num和num_r表示什么
void main()和int main()有什么区别 num 是没有符号的和num_r有符号的如-10
void main()和int main()一个可以不用返回值,一个返回一个整数类型的 ByTime 发表于 2020-3-2 09:41
num 是没有符号的和num_r有符号的如-10
void main()和int main()一个可以不用返回值,一个返回一个整数 ...
不用返回值,程序后面是printf(“*****结束***)就可以是吗? 2862593577 发表于 2020-3-2 09:57
不用返回值,程序后面是printf(“*****结束***)就可以是吗?
就是不用return了 ByTime 发表于 2020-3-2 10:19
就是不用return了
不用return,那用什么?
2862593577 发表于 2020-3-2 10:23
不用return,那用什么?
就是什么都不用啊 2862593577 发表于 2020-3-2 10:23
不用return,那用什么?
但是通常是return 0的,所以建议用int main qiuyouzhi 发表于 2020-3-2 10:26
但是通常是return 0的,所以建议用int main
明白了,最后一个问题:a = num % 10; //原4位数的个位,转换后4位数的千位
b = num / 10 % 10; //原4位数的十位,转换后4位数的百位
c = num / 100 % 10; //原4位数的百位,转换后4位数的十位
d = num / 1000; //原4位数的千位,转换后4位数的个位
num_r = 1000 * a + 100 * b + 10 * c +d;//转化后的四位数
这几个程序我看不懂表达什么 2862593577 发表于 2020-3-2 10:29
明白了,最后一个问题:a = num % 10; //原4位数的个位,转换后4位数的千位
...
用Python给你简单写一下:
>>> # 设num为1596
>>> num = 1596
>>> num % 10
6
>>> num // 10 % 10
9
>>> num // 100 % 10
5
>>> num // 1000
1
>>> # 分别是个,十,百,千位 qiuyouzhi 发表于 2020-3-2 10:32
用Python给你简单写一下:
还是看不懂 2862593577 发表于 2020-3-2 10:34
还是看不懂
num % 10
>>> num // 10 % 10
>>> num // 100 % 10
>>> num // 1000
num后面的数看不懂 2862593577 发表于 2020-3-2 10:29
明白了,最后一个问题:a = num % 10; //原4位数的个位,转换后4位数的千位
...
首先%10就是这个数除以10余几
所以a=num%10表示这个数除以10余几,就是个位
b=mun/10%10,因为/的优先级比%高,所以先算/,再算%,然后整型的量num/整型的10就是整型的商,不用管小数还是余数,最后%10就是求得十位,下面同理,举个例子吧
假设num=1234
a=num%10=4(个位)
num/10=123
b=num/10%10=3(十位)
num/100=12
c=num/100%10=2(百位)
d=num/1000=1(就剩一位了,不好往地下算了,所以他就是最高位)
然后他最后一步程序就是知道个十百千位求出这个数
页:
[1]