为啥我写的程序什么也输出不出来?不要新代码,我想知道错在哪


#include<stdio.h>
int main(void)
{
    /*********Begin*********/
   char a[100],b[100];
   int i,j;
   j=0;
   scanf("%s",a);
   for(i=99;i>=0;i--)
   {
     if(a[i]='\0')
     {
         continue;
     }
     else
     {
     b[j]=a[i];
     j=j+1;
     }
     }

     printf("%s",b);
    /*********End**********/
    return 0;
}

img

img

if语句少了一个等号(=),变成赋值语句了,修改如下:


if(a[i]='\0')
改为
if(a[i]=='\0')

scanf读取的字符串长度并比一定是100个,需要把数组初始化一下才行。

char a[100]={0},b[100]={0}; //修改1 

另外,第12行 if(a[i]='\0')这里你少写了一个= ,应该是 if(a[i]=='\0')

if(a[i]=='\0') //修改2

 if(a[i]='\0')

改为
if(a[i]=='\0')

说明一下:
由于你写成if(a[i]='\0'),导致a[i]值被设置为0,因此该if语句的结果为false,代码每次都进入else部分
else部分将b[j] = a[i],由于a[i]为0,所以所有b数组元素也都被设置为0了,最终你printf("%s",b);输出b字符串时,由于b全是0,自然啥也没输出了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632