在Win32的情况下long和int是一样的,其能表示的范围是一样的,我先你的结果可能超出int和long所能够表示的范围了。建议采用__int64,改写后的程序为:#includevoidmain(){__int64f1,f2;inti;f1=f2=1;for(i=0;i<20;i++){printf("%I64d,%I64d",f1,f2);f1=f1+f2;f2=f1+f2;}getch();}