为什么我的VC++6.0里编译的C程序结果总是不对

比如说一个很简单的程序#include<stdio.h>voidmain(){inta,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){... 比如说一个很简单的程序

#include<stdio.h>
void main()
{
int a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}
比如我输入10 20 30
它输出应该是10 20 30
但是我的VC++6.0输出的却是-858993460,-858993460,10
这个为什么哦?
那个INT是我打错了。
我换了%D还是一样的。
但是我编写其他程序却没出什么问题。目前好像也就这种比较类的程序出过这种问题。
展开
 我来答
867890873
2008-10-31
知道答主
回答量:23
采纳率:0%
帮助的人:21.3万
展开全部
你的程序是有一小点的错误。首先,你应该将int型改为float型,因为你的scanf用的是%f。其次,你的语句scanf("%f,%f,%f",&a,&b,&c); 用的是%f,%f,
%f,所以你在运行时的输入格式应该为:10,20,30 enter.特别注意:在输入的时候不能是10 20 30 这就是你错误的所在啊!
百度网友8e1a48c92
2008-10-31 · TA获得超过1322个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:507万
展开全部
要注意你定义变量的类型要和你在使用scanf()和printf()函数中的“格式化字符串”的类型要匹配,否则会强行转换,下面是我修改好的程序,你可以运行一下。

#include<stdio.h>
void main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
printf("%d,%d,%d\n",a,b,c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吴剑锟
2008-10-30 · TA获得超过152个赞
知道答主
回答量:51
采纳率:0%
帮助的人:47.3万
展开全部
换成 %d 试试 把整型转浮点型 在scanf的时候可能会有问题~
把int 改成flaot 我运行了 没问题……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ld8878
2008-11-05 · 超过13用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
输入10,20,30试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式