输出保留两位小数怎么做到?

img


输入输出样例用的是 , 符号,平常用的都是空格。我在scanf中的%lf后,号可以实现输入用顿号逗号隔开,可输出的时候,每一个数后面都有一个,号,最后就会多出来一个顿号,怎么办啊?
还有让保留两位有效数字,控制小数点后的位数我学过,可控制有效位数怎么做到啊?我上网搜了搜也没有搜到。
求解答!谢谢!

(1)可以加上判断,比如
for (int i = 0; i < n; i++)
{
if (i == 0) print("%lf", arr[i]);
else printf(", %lf", arr[i]);
}
(2)prinf("%.2lf", arr[i]); //保留2位

printf("%.2f", y)

用 %g 试试:printf("%g", y);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 第三章顺序结构程序设计中的 这是由于在scanf()函数中的格式控制字符串中含有普通字符“,”,普通字符也要原样缴人,即输入的数据需使用“.”作为间隔,但是实际输入的数据中没有“,”,因此编译系统只将这减值给变量a.后面的两个数据23和34将会被舍弃,不会赋值给变量b和c。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    #include<stdio.h>

    {
     int a, b, c, d;
     scanf_s("%2d%3d%*d,%d%d", &a, &b, &c,&d);
     printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
     printf("a=%4d,b=%-4d,c=%-4dd=%d\n", a, b, c, d);
     printf("a=%+4d,b=%+4d,c=%+4d,d=%+4d\n", a, b, c, d );
     return 0;

     当程序运行时输入:

    123456789,123 456

    则输出结果:


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^