繁体   English   中英

将一个9位数转换为三个3位数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM