编写程序将一个不确定位数的正整数进行三位分节后输出,如123456,则输出1,234,567(c语言编程老师)。

编写程序将一个不确定位数的正整数进行三位分节后输出,如123456,则输出1,234,567(c语言编程老师)。,第1张

先设定一个变量接受这个整数

下面讲解分段输出:

123456789 输出123 456 789。 789就是123456789对 1000取余 ,

456呢就是123456789除以1000之后再对1000取余,C语言中除法的规定

5/3=1 100/3=33商是和被除数的类型一样 所以123456789除以1000是123456

那么最后一个123输出依次类推 123456789除以1000*1000=1000000 再对1000取余数

以上是思路

#include<stdio.h>

main

{

int a

scanf("%d",&a)

int i,b

for(i=1,b==0,i++)//判断是几位数,循环结束i为位数值

b=a/10

int c=i/3

int j,d

for(j=0,j<=c,j++)//3位一输出

{d=a%1000

printf("%d",d)

a=a/1000;

}

}

char buf[30]

/************************************************/

char *seg(char *s)

{

char *p

int Len,Cnt,Rem

int i

p = buf //暂存

Len = strlen(s)

Cnt = (Len-1) / 3 //逗号个数

Rem = Len % 3 //最前逗号前数字

for(i=0i<Remi++)

{

*p++ = *s++

}

for(i=0i<Cnti++)

{

*p++ = ','

*p++ = *s++

*p++ = *s++

*p++ = *s++

}

*p++ = '\0'

return buf

}

我用最笨的方法写的 编译通过(不通过就没天理了!!)但很有效

代码如下:

#include <stdio.h>

#include <stdlib.h>

main()

{

printf("    1\n")

printf("   123\n")

printf("  12345\n")

printf(" 1234567\n")

printf("123456789\n")

printf(" 4444444\n")

printf("  33333\n")

printf("   222\n")

printf("    1\n")

printf("              \n")

printf("              \n")

printf("1\n")

printf("21\n")

printf("321\n")

printf("4321\n")

printf("54321\n")

printf("6543\n")

printf("765\n")

printf("87\n")

printf("9\n")

printf("            \n")

printf("            \n")

printf("123456789\n")

printf(" 1234567\n")

printf("  12345\n")

printf("   123\n")

printf("    1\n")

printf("                \n")

printf("                \n")

printf("    1\n")

printf("   1 2\n")

printf("  1 2 3\n")

printf(" 1 2 3 4\n")

printf("1 2 3 4 5\n")

printf(" 3 4 5 6\n")

printf("  5 6 7\n")

printf("   7 8\n")

printf("    9\n")

system("pause")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8055569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存