小羊爱吃小草 发表于 2023-11-4 18:45:42

消除空格

#include <stdio.h>

int main()
{
        float a, b, c;
        printf("please enter two numbers\n");
        scanf("%f%f", &a, &b);

        if(a > b)
        {
                c = a;
                a = b;
                b = a;
        }       
        printf("%5.2f,%5.2f\n",a, b);

        return 0;
}
在运行之后,输入了a,b的值,在enter之后出现的结果那一行前面有一个空格,有方法可以消除吗

isdkz 发表于 2023-11-4 18:46:00

可以使用字符串格式化来消除输出结果前面的空格。在printf函数中,可以使用"%-5.2f"来指定输出的浮点数占据5个字符的宽度,并且左对齐。修改代码如下:

#include <stdio.h>

int main()
{
    float a, b, c;
    printf("please enter two numbers\n");
    scanf("%f%f", &a, &b);

    if(a > b)
    {
      c = a;
      a = b;
      b = a;
    }
    printf("%-5.2f,%-5.2f\n",a, b);

    return 0;
}


这样修改后,输出结果的前面就不会有空格了。

Mike_python小 发表于 2023-11-4 18:47:13

消除空格的代码写法建议:

你的代码可以实现比较两个数大小并输出结果,但在输出结果前面出现了一个空格。这是因为在格式化输出时,%5.2f会在输出结果前面添加一个宽度为5的空格。

为了消除这个空格,你可以使用%-5.2f来指定左对齐,并保留两位小数的格式化输出。

下面是修改后的代码:


#include <stdio.h>

int main() {
    float a, b, c;
    printf("请输入两个数字:\n");
    scanf("%f%f", &a, &b);
   
    if (a > b) {
      c = a;
      a = b;
      b = a;
    }
   
    printf("%-5.2f, %-5.2f\n", a, b);
   
    return 0;
}


在这里,做了如下改进:

1. 使用%-5.2f来指定左对齐,并保留两位小数的格式化输出。

希望以上改进意见能对你有所帮助。如果有任何问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 消除空格