求助C语言的一道编程题,高手们帮忙解答一下

编写一程序实现以下功能:
从键盘输入3个整数,输出绝对值最大的数。

以下是我编写的源程序,但是结果不正确,只能得50%的分,3个数中有负数时总是输出负数!!错在哪里??我该怎么修改呀?

#include<stdio.h>
#include<math.h>

int main(void)
{
double num1, num2, num3, Num1, Num2, Num3;

printf("Input 3 numbers:");
scanf("%d,%d,%d", &num1, &num2, &num3);

Num1 = fabs(num1);
Num2 = fabs(num2);
Num3 = fabs(num3);

if (Num1 >= Num2 && Num1 >= Num3)
{
printf("The number with maxinum absolute value is %d.\n", Num1);
}
if (Num2 >= Num1 && Num2 >= Num3)
{
printf("The number with maxinum absolute value is %d.\n", Num2);
}
if (Num3 >= Num1 && Num3 >= Num2)
{
printf("The number with maxinum absolute value is %d.\n", Num3);
}

return 0;
}

有两种改法:
第一种是
将double 改为float 数据类型的声明
并将printf() 与scanf()的函数里的%d 改为%f

第二种改法是
依然保留double 数据类型声明
scanf()的函数里的%d 改为 %lf
printf()的函数里的%d 改为 %f或%lf

总的来说就是输入与打印的数据说明写错了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-27
改一下数值输入!
printf("Input 3 numbers:\n");
scanf("%d", &num1);
scanf("%d", &num2);
scanf("%d", &num3);
第2个回答  2010-05-27
把double改成float;
把scanf和printf里面的%d全部改成%f即可
输入-1,-2,-3(注意一定要有逗号)
显示3.00000最大
数据类型没搞清楚。
第3个回答  2010-05-27
1、因为是整数,用int就行,不必double
2、输出绝对值最大的数,所以3个printf中的Num1,Num2,Num3应分别改为
num1,num2,num3
其他不用变,另外在输入数时用逗号隔开
相似回答