我正在编写一个程序,它使用1个语句来读取用户的6个浮点数。然后让它打印3行中的6个数字,满足以下所有要求:
(1)数字按照与
中读取的相反顺序打印(2)它们分为3行:第一行有1个数字,下一行有2个数字,最后一行有3个数字
(3)排列数字,使它们采用列格式,右对齐,小数点后1位数
这是我对前两个要求的尝试
#include <stdio.h>
int main(void)
{
//variable definitions
float f1,f2,f3,f4,f5,f6;
printf ("Enter 6 float numbers, separated by commas: ");
scanf ("%f1,%f2,%f3,%f4,%f5,%f6",&f1,&f2,&f3,&f4,&f5,&f6);
printf ("%f6\n",f6);
printf ("%f5,%f4\n",f5,f4);
printf ("%f3,%f2,%f1\n",f3,f2,f1);
return 0;
}
对我的初学者来说,这很有道理。
这是我运行时的结果
输入6个浮点数,以逗号分隔:0.2,3.2,0.1,0.5,0.6,0.7
数字是:
-107374176.0000006
-107374176.0000005,-107374176.0000004
-107374176.0000003,-107374176.0000002,0.2000001
按任意键继续。 。
除最后一个外,所有这些都是垃圾输出。感谢所有帮助!
答案 0 :(得分:2)
问题出在以下格式:
scanf ("%f1,%f2,%f3,%f4,%f5,%f6",&f1,&f2,&f3,&f4,&f5,&f6);
应该是
scanf ("%f,%f,%f,%f,%f,%f",&f1,&f2,&f3,&f4,&f5,&f6);
答案 1 :(得分:1)
打印浮点数的正确格式为:
printf("%.1f", variable);
在此示例中,variable
中的数字将在小数点后打印1位数。