作业

打印99乘法表

字符串反转

递归调用


打印99乘法表

#include <stdio.h>

int main()
{
    int i,j;
    for (i = 1; i < 10; ++i){ 
       for (j = 1; j <= i; ++j) 
           printf("%d x %d = %d\t",j,i,i*j);
       printf("\n");
    }                                                                                                                                                             
    return 0;
}

  • 打印菱形
  #include <stdio.h>
  
  int main()
  {
      
      int count = 9,
✹         row_one = 5,
✹         row_two = 4,
          i=0, 
          j=0, // 第一个隐形三角形
          k=4, // 第二个隐形三角形
          l, // 第一个三角形
          m, // 第二个三角形
✹         n=0;
  
      for (i = 0; i < count; ++i) {
          // 第一个倒三角形
          for (j = 0; j < 4-i; ++j)
              printf("%d",0);
          //---------
          for (l = 0; l <= i&&i<5; ++l) 
              printf("* ");
  #if 0
          for (l = 0; l <=(i*2) && i< row_one; ++l)
          {
              printf("* ");
  #if 0
              if (l != 0 &&  (l%3) == 0) {
                  printf(" ");
              }else{
              printf("*");
              }
  #endif
          }                                                                                 
  #endif
          for (k = 4; k <i; ++k)
              printf("%d",0);
  #if 0
          for (m = 4; m<9&&i>4; ++m) {
              printf("* ");
          }
  #endif
          //for (m = i-3; m<9&&i>4; ++m) {
          for (m = 0; m<9-i&&i>4; ++m)
              printf("* ");
  #if 0
          for (m = 7; m>(n*2)  && i >row_two; --m) {
              printf("* ");
          }
          i>row_two?n++:i;
  #endif
          printf("\n");
      }   
      return 0;
  }

字符串反转

#include <iostream>
#include <string.h>

#define N 1024


void change(char *p) 
{
    int len = strlen(p);
    char *after = p+len-1;
    while(after > p)
    {   
        char c = *after;
        *after = *p; 
        *p = c;
        after--;
        p++;
    }                                                                                                                                                         
}

int main()
{
    char c[N];
    fgets(c,N,stdin);
    c[strlen(c)-1] = 0;
    change(c);
    puts(c);
    return 0;
}


递归调用

// 求数字n的阶乘
int f(int n)
  {
      if(1==n)
      {   
          return 1;
      }   
      return n*f(n-1);
  }
// 假如有n个台阶,一次只能上1个台阶,或者2个,请问走到n个台阶,有几种走法?
int f(int n)
{
    if(1==n)
    {   
        return 1;
    }else if(2==n)
    {   
        return 2;
    }   
    return f(n-1)+f(n-2);
}

int main()
{
    int n,i,first,second,third;
    while(scanf("%d",&n)!=EOF)
    {                                                                                                                                 
        //printf("%d != %d\n",n,f(n));
        // 非递归实现
        first=1,second=2;
        for (i=0;i<n-2;++i)
        {
         third=first+second;   
         first=second;
         second=third;
        }

        printf("%d != %d\n",n,third);
    }   
}

posted on 2021-08-02 05:58  lodger47  阅读(24)  评论(0)    收藏  举报

导航