#include<stdio.h>
long int fib(int n)
{
long int f;
if(n==1 || n==2)
f=1;
else;
f=fib(n-1)+fib(n-2);
return(f);
}
void mian()
{
int i;
for(i=1;i<=20;i++)
{
printf("%101",fib(i));
if(i%4==0)
cout << endl;
}
printf("\n");
}
修改见注释,供参考:
#include<stdio.h>
long int fib(int n)
{
long int f;
if (n == 1 || n == 2)
f = 1;
else //; 这里多了 ';' 分号
f = fib(n - 1) + fib(n - 2);
return (f);
}
void main() //mian() 修改
{
int i;
for (i = 1; i <= 20; i++)
{
printf("%10ld", fib(i));//printf("%101", fib(i)); 修改
if (i % 4 == 0)
printf("\n"); //cout << endl; 修改
}
printf("\n");
}
printf("%101",fib(i));这行对吗?
cout << endl;这行怎么改成printf呢?
修改的点给你标在代码中了:
#include<stdio.h>
long int fib(int n)
{
long int f;
if(n == 1 || n == 2)
f = 1;
else //去掉分号
f = fib(n - 1) + fib(n - 2);
return f;
}
void main() //mian改成main
{
int i;
for (i = 1; i <= 20; i++)
{
printf("%d\t", fib(i)); //改成 %d\t
if (i % 4 == 0)
printf("\n"); //改成printf("\n");
}
printf("\n");
}
printf("%101",fib(i));这行是不对的,应该是 printf("%d",fib(i));
cout << endl是C++ 的写法,就是换一个行,在C语言中报错 替换成printf("\n");
#include<stdio.h>
long int fib(int n)
{
long int f;
if (n == 1 || n == 2)
f = 1;
else; //这个也是错误的 不应该有分号
f = fib(n - 1) + fib(n - 2);
return(f);
}
void main() // 改成main
{
int i;
for (i = 1; i <= 20; i++)
{
printf("%101", fib(i)); //这个101是不对的,改成 %ld
if (i % 4 == 0)
{
printf("\n"); //换行
}
}
printf("\n");
}