永发信息网

C语言问题 TC2.01 英文版 环境

答案:3  悬赏:30  手机版
解决时间 2021-07-26 18:45
  • 提问者网友:寂寞撕碎了回忆
  • 2021-07-25 21:13

在 TC2.01 英文版环境下运行 以下代码

main()
{
int i,j;
long number;
long num[6];
long temp;
clrscr();
scanf("%ld",&number);
for(temp=1;temp<6;temp++)
{
num[temp]=number%10;
number=number/10;
}
for(i=1;i<6;i++)
for(j=1;j<6-i;j++)
if(num[j]>num[j+1]){num[0]=num[j];num[j]=num[j+1];num[j+1]=num[0];}
for(i=1;i<6;i++)
{
number+=num[i]*(long)(pow(10,i-1));
}

printf("%ld\n",number);
getch();
}

在加上 #include<math.h> 后程序可正常运行以及正常运算

但是为什么不加#include<math.h> 会通过编译,而运行结果不正确

请高手指教 造成这种现象的具体原因,详细~ 谢谢

最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-07-25 22:26
汗、、、#include<> 是包含某个包,math 是其中一个,里面有一些定义好的函数,比如你代码里面的pow()。比如sqrt(100) = 10 ;sqrt 也是math的函数,要加了头文件才可以,还有比如 malloc 等等。
如果不加,编译就不认识 pow是什么,就像你要不加 stdio 他也不认识printf,scsanf 一样的道理。
全部回答
  • 1楼网友:酒者煙囻
  • 2021-07-25 23:26
TC2.0默认的情况下任何程序都调用基本输入输出库,即stdio.h。 所以,#include<stdio.h>可以不写。系统会自动帮你调用。 但是只有这个库是享受到这个待遇(因为实在是太常用了)。其它的任何库都要#include了才能用。 在其它的C编译器中,就没有这种设置。只有TC2.0最个性啦。 嘿嘿。
  • 2楼网友:撞了怀
  • 2021-07-25 23:19

#include<math.h>的作用是调用它包含的函数,如果不使用它集合的函数不能调用。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯