一个烧脑的程序
躺在床上看了会儿《C语言从入门到精通》,又从头往后看的,看到了数据类型那里,有一个例子求1乘2乘3乘4乘5的代码,看的还算透彻,但感觉自己的数据类型理解不算太透彻,于是想写个程序练练手,打开电脑,说干就干
写了个求2015的3次方的程序
#include<stdio.h>
int main()
{
int shuzi=2015;
int i=3;
while(i!=1)
{
shuzi=2015*shuzi;
i--;
}
printf("%d",shuzi);
getchar();
}
运行程序后得到的结果竟然是负数,最后再看了下代码,果然不出所料,自己的数据类型确实不行。修改代码。
#include<stdio.h>
int main()
{
double shuzi=2015;
int i=3;//幂
while(i!=1)
{
shuzi=2015*shuzi;
i--;
}
printf("%d",shuzi);
getchar();
}
刚才的问题应该是数据溢出了,所以才会出现负数。但是修改过的程序仍然是负数,这就开始烧脑了,仔细检查算法并没有什么问题,百度也没有解决问题,这问题可就大了
找网友问了问,又学到了不少


最后代码
#include<stdio.h>
int main()
{
double shuzi=2015;
int i=3;//幂
while(i!=1)
{
shuzi=2015*shuzi;
i--;
}
printf("%lf",shuzi);
getchar();
}
总结:
输出Double类型要用”%lf”
还要去看书啊,把数据类型弄明白,学习了易语言感觉数据类型这方面的根本不是问题,但是学习了C发现也不是那么简单的啊。