![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
为什么我的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还是一样的。
但是我编写其他程序却没出什么问题。目前好像也就这种比较类的程序出过这种问题。 展开
#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还是一样的。
但是我编写其他程序却没出什么问题。目前好像也就这种比较类的程序出过这种问题。 展开
4个回答
展开全部
你的程序是有一小点的错误。首先,你应该将int型改为float型,因为你的scanf用的是%f。其次,你的语句scanf("%f,%f,%f",&a,&b,&c); 用的是%f,%f,
%f,所以你在运行时的输入格式应该为:10,20,30 enter.特别注意:在输入的时候不能是10 20 30 这就是你错误的所在啊!
%f,所以你在运行时的输入格式应该为:10,20,30 enter.特别注意:在输入的时候不能是10 20 30 这就是你错误的所在啊!
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、...
点击进入详情页
本回答由MarsCode提供
展开全部
要注意你定义变量的类型要和你在使用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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换成 %d 试试 把整型转浮点型 在scanf的时候可能会有问题~
把int 改成flaot 我运行了 没问题……
把int 改成flaot 我运行了 没问题……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入10,20,30试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询