一个烧脑的程序

躺在床上看了会儿《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();
}

刚才的问题应该是数据溢出了,所以才会出现负数。但是修改过的程序仍然是负数,这就开始烧脑了,仔细检查算法并没有什么问题,百度也没有解决问题,这问题可就大了

找网友问了问,又学到了不少

1

1

最后代码

#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发现也不是那么简单的啊。