怎么才能即可以输入整数,又可以输入小数,我写的代码只有一半正确率
题目是输入3个实数a,b,c,通过交换,将最小的数放到a
,次小的数放到b
,最大的数放到c
后,按由小到大的顺序输出。
#include <stdio.h>
int main()
{
int a, b, c, temp;
scanf("%d%d%d",&a,&b,&c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
if (a > c)
{
temp = a;
a = c;
c = temp;
}
if (b > c)
{
temp = b;
b = c;
c = temp;
}
printf("%d ", a);
printf("%d ", b);
printf("%d", c);
return 0;
} 问题出在你的代码中只能输入整数,无法输入小数。要实现既能输入整数又能输入小数,你需要修改scanf函数的格式字符串。
scanf函数的格式字符串"%d"表示读取一个整数,而"%f"表示读取一个浮点数(包括小数)。所以你需要将"%d"替换为"%f",以便可以输入小数。
修改后的代码如下:
#include <stdio.h>
int main()
{
float a, b, c, temp;
scanf("%f%f%f",&a,&b,&c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
if (a > c)
{
temp = a;
a = c;
c = temp;
}
if (b > c)
{
temp = b;
b = c;
c = temp;
}
printf("%f ", a);
printf("%f ", b);
printf("%f", c);
return 0;
}
这样修改后,你就可以输入整数和小数,并且按照由小到大的顺序输出了。 你的代码中使用的是整数类型(int),所以只能输入整数。如果你想输入小数,你应该使用浮点类型(float)或者双精度浮点类型(double)。下面是修改后的代码:
#include <stdio.h>
int main()
{
double a, b, c, temp;
scanf(\"%lf%lf%lf\",&a,&b,&c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
if (a > c)
{
temp = a;
a = c;
c = temp;
}
if (b > c)
{
temp = b;
b = c;
c = temp;
}
printf(\"%.2lf \", a);
printf(\"%.2lf \", b);
printf(\"%.2lf\", c);
return 0;
}
在这个修改后的代码中,我使用了double类型来代替int类型,这样就可以输入小数了。同时,我也修改了scanf和printf中的格式说明符,使其可以正确地读取和输出小数。在printf中,%.2lf表示输出的小数将保留两位小数。
注意:在C语言中,%lf用于读取double类型的数据,%f用于读取float类型的数据。在printf函数中,%f和%lf都可以用于输出double类型的数据。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案 isdkz 发表于 2023-10-28 17:12
问题出在你的代码中只能输入整数,无法输入小数。要实现既能输入整数又能输入小数,你需要修改scanf函数的 ...
不对,当输入整数时,输出也要为整数,输入实数时,只能保留一位小数 陶远航 发表于 2023-10-28 17:13
你的代码中使用的是整数类型(int),所以只能输入整数。如果你想输入小数,你应该使用浮点类型(float)或 ...
不行,输入整数时,输出有小数点
页:
[1]