多谢各位大虾! 我已经找到Turboc了,在此多谢各位在大虾!但是又出新问题了。

beehxf 2000-07-27 08:24:00
为什么TC中编译的程序与VC中的结果不同?TC中结果是:239296而VC中是:370368(正
确)(输入3,6)源程序如下:
#include <conio.h>
#include <math.h>
#include <stdio.h>
/*****found******/
fun(int a,int n)
{ int j=0;
long s=0,t=0;
for(j=1;j<=n;j++)
{
/******found******/
t=(10*t)+a;
/*printf("%dt=%d\n",j,t);*/
s=s+t;
}
return(s);
}



main()
{ int x,m;
printf("\nPlease enter x and m:\n");
scanf("%d,%d",&x,&m);
printf("\nThe value of fucnction is:%ld",fun(x,m));
}
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2000-07-28
  • 打赏
  • 举报
回复
programer 说的是对的。
我想也认为是这个原因。
programer 2000-07-27
  • 打赏
  • 举报
回复
太简单了,你的函数返回值是int型的(函数未声明返回值则默认为ing型),而你的结果已经超过了int型数据说能表示的范围(以上说得是TC)。之所以VC中没有错,是由于Dos为16位操作系统,而Windows乃32位操作系统,VC中的int型于TC中的long型所表示的范围相当,所以未超出范围。你把函数声明改为:long fun(int a,int n)试试。:-)
net_worm 2000-07-27
  • 打赏
  • 举报
回复
是不是你的fun没有声明类型哦?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧