C Primer+Plus(九)编程练习

1、编写一个函数。函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符,第一个整数说明在每行中该字符的个数,第二个整数说明需要输出的行数。

#include<stdio.h>
void showchar(char c,int a,int b)
{
  int i,j;
  for(i=0;i<b;i++)
    {
       for(j=0;j<a;j++)
         putch(c);
     putch(10);  //为何这不能回车,只是换行?
     putch(13);  
    }
}
int main(void)
{
  void showchar(char,int,int);
  char x='J';
  int y=12,z=5;
  showchar(x,y,z);
  getch();
  return 0;
}

2、编写并测试一个函数Fibonacci(),分别使用循环和递归算法完成斐波纳契数列的计算。

#include<stdio.h>
long unsigned int Fibonacci1(int n)
{
  if(n==1) return 0;
  if(n==2) return 1;
  else
    return (Fibonacci1(n-1)+Fibonacci1(n-2));
}  //递归算法

long unsigned int Fibonacci2(int n)
{
  long int i,a0,a1,ap;
  i=0;
  a0=0;
  a1=1;
  if(n==1) return 0;
  if(n==2) return 1;
  else
  {
    while(i<(n-3))                  //更新(n-3)次
     {ap=a1;a1=a0+a1;a0=ap;i++;}     //每次循环,更新前两项的值
    return(a0+a1);
  }
}  //循环算法

int main(void)
{
  long unsigned int Fibonacci1(int);
  long unsigned int Fibonacci2(int);
  int x;
  int i;
  printf("input number[0,1000]:
");
  scanf("%d",&x);
  for(i=1;i<=x;i++)
    printf("%ld ",Fibonacci1(i));
  printf("
");
  getch();
  printf("
");
  for(i=1;i<=x;i++)
    printf("%ld ",Fibonacci2(i));
  getch();
  return 0;
}
  
原文地址:https://www.cnblogs.com/tsembrace/p/3142546.html