Mr.何138 2021-11-07 16:00 采纳率: 100%
浏览 32
已结题

关于#c语言#的问题:输出多位数字组成的数值时

输出多位数字组成的数值时,经常以“万”为单位,把数值分成多段。
题 输入一个十进制正数,可能是整数,也可能带有最多4位小数。
从小数点开始,按照4位一节的格式输出,每两节之间用一个空格分隔。
编程题 所有数字(包括小数点)不超过1000位。

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-11-08 16:01
    关注

    你好同学,这个好做呢,代码供参考:

    #include <stdio.h>
    int main(){
    char a[1000];
    int i,j,k,n,count;
    scanf("%s", &a);
    for(n=0; a[n]!='\0'; n++);
    for(k=0; a[k]!='.'&&k<n; k++);
    j = k%4;
    count = (k-j)/4;
    for(i=0; i<j; i++)printf("%c",a[i]);
    for(i=0; i<count; i++){
        if(j!=0 || ((j==0&&i!=0) ))printf(",");
        if(((count-i)%2==0 && j!=0) || ((count-i)%2==0 && j==0 && i!=0))printf(" ");
        printf("%c%c%c%c", a[j+i*4], a[j+i*4+1],a[j+i*4+2],a[j+i*4+3]);
    }
    for(i=k;i<n;i++)printf("%c", a[i]);
    }
    

    输入输出示例:
    第一行是输入,第二行是输出

    991234123412341234.5678
    99, 1234,1234, 1234,1234.5678
    

    可见满足了按照4位一节的格式输出,每两节之间用一个空格分隔
    我不知道你需不需要每一节后面加个逗号,如果不需要,那就是每8位空一个格子,那就把这句

    if(j!=0 || ((j==0&&i!=0) ))printf(",");
    

    删了就行
    有帮助还望题主给个宝贵的采纳支持一下答主答题呢,谢谢啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)