爱问知识人 爱问教育 医院库

C程序编写

首页

C程序编写

输入五个字符,运行结果输出逆序的这5个字符,例如:输入abcde,输出edcba,必须用到函数的递归法

提交回答
好评回答
  • 2018-04-04 05:10:41
    #include 
    void reverse(char *line){
    char ch=*line;
    if(ch){
    reverse(++line);
    printf("%c",ch);}
    }
    int main(){
    char line[81];
    char*ptr;
    ptr=gets(line);
    reverse(line);
    return 0;
    }
    我们课本上的,经我略微改动。但是具体我也不是很了解。
    我看看这个程序,总觉得最后应该输出最后一个字符。
    请方家指点。

    在***

    2018-04-04 05:10:41

其他答案

    2018-04-04 12:10:41
  •   #include "stdio。h"
    void reverse(char *p)
    {
     char ch=*p;
     if(ch)              /*循环条件*/
     {
      reverse(++p);
      printf("%c",ch);
     }
    }
    int main()
    {
     char line[81]={'a','b','c'};  /*初始化*/
     char *ptr;
     ptr=line;          /*数组的头结点付给指针变量*/
     reverse(ptr);     /*调用函数*/
     return 0;
    }
    这是我仿dongfang7585。
      写的程序 一开始我读这个程序也以为是输出最后一个字符 但运行结果是: cba 后来想明白了 每次++p后面的printf("%c",ch);都要执行 当循环条件不满足时(p指向c后面的结束符)开始执行 首先输出c 然后回到上一层循环 输出b 再回到上一层 输出a。
      

    李***

    2018-04-04 12:10:41

  • 2018-04-04 05:10:41
  • /* by Colin 2006-12-06 */
    #include 
    void foo(char str[]) {
        char *p = str;
        char c = *p;
        if (*++p) foo(p);
        printf("%c", c);
    }
    int main() {
        foo("abcde");
        return 0;
    }

    不***

    2018-04-04 05:10:41

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 177-196
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):