考上研究僧 2022-09-30 19:59 采纳率: 97.4%
浏览 40
已结题

输入字符串,按逆序输出——递归

输入一串以“!”结束的字符串,按逆序输出,要求用递归,请问这样写有什么问题吗,结果运行出一堆乱码。

#include<stdio.h>
#include<malloc.h>
int main()
{
    void convert(char* s);
    int i;
    char s[100], ch;
    ch = getchar();
    for (i = 0; ch != '!'; i++)
    {
        s[i] = ch;
        ch = getchar();
    }
    convert(s);
    return 0;
}
void convert(char* s)
{
    if (*s == '!')
        return;
    else
    {
        convert(s+1);
        printf("%c", *s);
    }
}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-09-30 20:15
    关注

    if (*s == '!')
    main里的循环并没有将感叹号写入数组啊,你这判断根本不成立

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月13日
  • 已采纳回答 10月5日
  • 创建了问题 9月30日