C求救,一道小小的练习题

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:03:43
#include "stdio.h"

main()
{
int a,b,c,max;
printf ("input three numbers:\n");
scanf("%d,%d,%d",a,b,c);
max=a;
if (max<b)
max=b;
if (max<c)
max=c;
printf("最大的数是:%d",&max);
}

这个程序我反复看了,但是运行出来的结果是-54
我是在XP上运行的,用WIN-TC编译
请问问题出在哪里啊?

呵呵,有两句错了:
scanf("%d,%d,%d",a,b,c);应该改为:scanf("%d,%d,%d",&a,&b,&c);
注意a,b,c在输入时要使用取址符号&,这样计算机在写入数据时才会赋值给a,b和c。
还有一句是printf("最大的数是:%d",&max);应该改为printf("最大的数是:%d",max); 这里,把max前的取址符号去掉了,否则读出来的数据是max的地址,这跟你的内存存储状态有关,可能不同时候显示的结果不一样的。
记住,这两点都是c初学者容易犯的错误,请以后编程时注意这两方面……
回答完毕,楼主还满意吧?

没赋初值