c语言比较两个数大小

//从键盘获取两个数,输出小的那个,用函数的方法处理
# include <stdio.h>
double min (double x, double y);
int main (void)
{
double a, b;
double c;
printf ("请输入两个数值:\n");

while ((scanf ("%f%f", &a, &b)) == 2)
{
c = min (a, b);
printf ("较小的数是%f\n", c);
}

return 0;
}

double min (double x, double y)
{
if (x > y)
return y;
else
return x;

}
我知道有别的方法可以,只是想知道我写的这个方法哪错了,

这个题目你用的是双精度的整型double,所以输入输出的类型限定符为“%lf”而不用“%f”,因为你要使用“%f”时就是把双精度的数强制转化为单精度的,可能会造成精度损失,出现一个意外的输出。
当然了,你也可以这样改,把double改为float

最后输出的时候你如果不想要那么多小数,就用"%.2lf"意思是保留2位小数,用float时你用“%.2f”
# include <stdio.h>
double min (double x, double y);
int main (void)
{
double a, b;
double c;
printf ("输入两个需要比较的数:\n");

while ((scanf ("%lf%lf", &a, &b)) == 2)
{
c = min (a, b);
printf ("最小的数为%.2f\n", c);
}

return 0;
}

double min (double x, double y)
{
if (x > y)
return y;
else
return x;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-22
下面给出一个简单的比较两个数大小的C语言实现
#include<stdio.h>
int main()
{
int a,b;
scanf("%d",&a);
scanf("%d",&b);
if(a>b)
printf("a is bigger than b");
else
printf("a is smaller than b");
return 0;
}
第2个回答  2013-07-22
主函数main里面的那个while循环不对、scanf读取数值后等于2?你怎么想的?不要用循环了,直接读取然后调用min函数就好了
第3个回答  2013-07-22
while ((scanf ("%f%f", &a, &b)) == 2) ==>while ((scanf ("%lf%lf", &a, &b)) == 2)即可
第4个回答  2013-07-22
把while ((scanf ("%f%f", &a, &b)) == 2)中的两个%f改成%lf,再试试看