新人学C请求大家帮忙看下~

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:58:19
#include <stdio.h>
void main()
{
int i=1,j=1,b;
char f,f1,f2;
f1=i;
f2=j;
for(b=1;b<19;b++)
{
f=f1+f2;
f1=f2;
f2=f;
printf("%d\n",f);

}
}
我要得出后面一数是前面两个数的和,
结果是:
3
5
8
13
21
34
55
89
-112
-23
121
98
-37
61
24
85
109
怎么有负数~为什么呢哪错了?

问题出在这句"char f,f1,f2; ",char型的数据只能存储-127到+127的数,你的结果超过了+127,进位后就变成负数了,把char型改成int型就好了.

打出的第一个数应该是2呀。为什么用来计数的f,f1,f2要定义为字符型呢?为防止出错应该定义成整、型吧。