Blindinlights 2021-11-13 21:16 采纳率: 100%
浏览 52
已结题

两次的输出为什么不一样

代码如下


#include<stdio.h>
#include<string.h>
char *re;
char* func(char *s);
int main ()
{
    char ch[1000];
    char *x;
    scanf("%s",&ch);
    //printf("%s\n",ch);
    printf("%s",func(ch));

    return 0;
}
char* func(char *s)
{
    char *re;
    char x[1000];
    int lenth,i=0;
    lenth = (int)strlen(s);
    s = s+lenth-1;
    while(i<=lenth)
    {
        if(i==lenth)
            x[i] = '\0';
        else
            x[i]=*(s--);
        i++;
    }    
    re = &x[0];


    return re;
}

func的作用是使输入的字符按照反序排放

当主函数中没有没有printf("%s\n",ch);是输出结果是这样的

img

有printf("%s\n",ch);的时候是这样的

img

求解答是什么原因导致两次输出不一样?

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 11月21日
      • 已采纳回答 11月13日
      • 创建了问题 11月13日

      悬赏问题

      • ¥100 AZURE创建地图类webapp
      • ¥20 51单片机实训实验报告
      • ¥15 C# 循环读写数据中途突然变慢
      • ¥15 用Java实现双端队列
      • ¥150 ID3决策树实现分类
      • ¥15 multisim10安装后,找不到NI License Manager的程序来安装许可证
      • ¥15 C++银行卡系统 Help!
      • ¥15 R语言数据分析的相关问题
      • ¥15 模型导入SP后贴图纹理只有一个,拆了四张UV的,怎么解决?
      • ¥15 检索带order by 非常慢