注册 登录
编程论坛 C++教室

求大神指教。。。。为什么我编的程序都有一个错误

zcx591017451 发布于 2011-05-28 09:51, 367 次点击
#include<stdio.h>
double fun(int n)

    double fun(int n)
{
       int i;
       double sum = 0.0;
       double temp;
       for(i = 1;i<=n;i++)
       {
             temp = i*(i+1);
             sum += 1/temp;
       }
       return sum;
}
void main()
{double k;
k=fun(10);
printf("k=%f\n",k);
}






#include<stdio.h>
int fun( int t)
{ int f1,f2;
  f1=1;f2=1;
  while(f2<=t)
  {f1=f1+f2;
   f2=f2+f1;
  }
  if(i>t)return(f1);
  else return(f2);
}
unsigned int Fibonacci(int n);
int main( void )
{
 int i;
 for(i = 1 ;i <= 20;i ++)
 {
  printf("%d\n",Fibonacci(i));
 }
 return 0;
}
unsigned int Fibonacci(int n)
{
 if( n == 1 || n == 2)
  return 1;
 else
  return Fibonacci(n-1)+Fibonacci(n-2);
}







#include<stdio.h>
double fun(double n)
{
double i,a;
a = 1;
for(i=1;i<=n;i++)a *= i;
return a;
}
void main()
{
    {    int x,y,m,n,c,d;
   
    printf("input x:\n");
    scanf("%d",&x);
    y=fun(x);
    printf("input m:\n");
    scanf("%d",&m);
    m=fun(n);
    d=fun(x-n);
    c=y/d*m;
     printf("%c\n",c);
    }


   
4 回复
#2
wavewind2011-05-28 10:24
第三个程序段:
#include<stdio.h>
double fun(double n)
{
double i,a;
a = 1;
for(i=1;i<=n;i++)a *= i;
return a;
}
void main()
{
    {    int x,y,m,n,c,d;
   
    printf("input x:\n");
    scanf("%d",&x);
    y=(int)(fun(x));               //这里存在一个类型转换的问题,如果不考虑精度,可以采用y=(int)(fun(x));
                            //如果考虑精度,可以将int x;改为double x;
                            //产生这个问题的原因是:fun函数的定义中返回数据的类型是double型。
    printf("input m:\n");
    scanf("%d",&m);
    m=(int)fun(n);                //这里的问题和上面的一样
    d=(int)fun(x-n);              //这里的问题和上面的一样
    c=y/d*m;
     printf("%c\n",c);
    }
}                                  //缺少一个大括号


   
#3
wavewind2011-05-28 10:25
第一个程序段:double fun(int n) 这个后面需要加逗号

第二个程序段:if(i>t)return(f1);  原因是变量i没有定义;

#4
zcx5910174512011-05-30 00:03
回复 3楼 wavewind
谢谢!~~
#5
zcx5910174512011-05-30 00:04
回复 楼主 zcx591017451
谢谢!~回复
1