[英]Converting a 9 digit number into three 3 digit number
好的,大家好,我在输入中有9位数字( 123456789
),我需要将其分解为第一个中位数和最后三个数字( 123,456,789
)。 我知道我可以使用取模来获取最后三位数字。
first_group_of_three = input number % 1000;
但是我不知道如何获得另外两个小组。 任何帮助,将不胜感激。
更新! 多亏了milevyo的回答,我设法弄清楚了。现在因为代码很怪异,我是一个初学者,我想问一下(下面)编写这种代码的更有效的方法是什么,也许使用更少的变量或一些其他技术。我没有将其转换为char,因为我们仍然“已经学会了它”,因此我们被禁止这样做
scanf("%d" , &input_number);
last_group_of_three = input_number % 1000;
temp = (input_number-last_group_of_three)/1000;
middle_group_of_three = temp % 1000;
first_group_of_three = (temp-middle_group_of_three)/1000;
first_group_of_three = input number % 1000;
shift=(input number-first_group_of_three)/1000
second_group_of_three = shift % 1000;
and so on
简化: @Barmar
scanf("%d", &input_number);
last_group_of_three = input_number % 1000;
input_number /= 1000;
middle_group_of_three = input_number % 1000;
input_number /= 1000;
// % 1000 only if original input exceeded 9 digits
first_group_of_three = input_number % 1000;
注意:许多编译器会将% 1000
和/ 1000
优化为一个操作,提供两个结果:余数和商。
(OP没有提到负数应该用什么代码。)
您可以在char表中以字符串形式输入数字,然后前3个数字将保留在表的第4个char中,成为char',',第5、6、7th个char将是下3个数字,以此类推。最后创建字符串“ 123,456,789”,然后打印。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.