怎么用C语言实现精确到小数点后N位如题2-5

如题所述

第1个回答  2019-10-13

重写了程序:

#include<stdio.h>

int main()

{ int a,b,c,i,n=0,k[30];

  scanf("%d%d%d",&a,&b,&c);

  do

  { printf("Case %d: ",++n);

    for(i=0; i<=c; i++)

    { k[i]=a/b;

      a=a%b*10;

    }

    if(a/b>4)k[c]++;

    for(i=c; i>0&&k[i]>9; k[i]++)k[i--]-=10;

    for(i=0; i<=c; i++)

    { if(i==1)putchar('.');

      printf("%d",k[i]);

    }

    putchar('\n');

    scanf("%d%d%d",&a,&b,&c);

  }

  while(a||b||c);

  return 0;

}

本回答被提问者和网友采纳
第2个回答  2019-10-03

(可选)后随整数或 * 或两者皆无的 . 指示转换的精度。在使用 * 的情况下,精度由额外的 int 类型参数指定。若此参数的值为负数,则它被忽略。若既不使用数字亦不使用 * ,则精度采用零。

https://zh.cppreference.com/w/c/io/fprintf