同一C语言程序在VC和codeblocks上运行结果不同,原因是什么?

程序如下,求一个数的“回文数”,即把1234变为4321。但是输入1234后在VC中输出为4321而在codeblocks中输出为4320。求原因#include<std... 程序如下,求一个数的“回文数”,即把1234变为4321。但是输入1234后在VC中输出为4321而在codeblocks中输出为4320。求原因
#include<stdio.h>
#include<math.h>
int main()
{
int n,k,i=1,m,sum=0;
scanf("%d",&n); //假设n=1234
k=(int)log10(n); //k为n的位数减1
sum=sum+(int)(n/pow(10,k)); //防止循环中出现pow(10,0) sum=1
printf("%d\n%d\n",k,sum); //调试
while(i<k){ //sum=1+2*10+3*100
m=(int)(n/pow(10,k-i));
sum=sum+(m%10)*pow(10,i);
i=i+1;
printf("%d\n%d\n",m,sum); //调试
}
sum=sum+(int)(n%10)*pow(10,k); //防止循环中出现pow(10,0) sum=sum+4*1000
printf("%d",sum);
return 0;
}
发现一个情况可能与这个现象有关但不知道为什么会出现这种现象,
运行程序一时输出为99而运行程序二时输出为100,但程序一、二本质上均为求10的2次方的整值的程序,为什么会出现这种差别?
程序一:
#include<stdio.h>
#include<math.h>
int main()
{
int a,c;
scanf("%d",&a);
c=(int)pow(10,a);
printf("%d",c);
return 0;
}
程序二:#include<stdio.h>
#include<math.h>
int main()
{
printf("%d",(int)pow(10,2));
return 0;
}
展开
 我来答
wustudent
2014-03-29 · TA获得超过336个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:233万
展开全部
编译器不同的问题吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式