2 wsunny111 WSunny111 于 2017.01.06 15:11 提问

初学者请教 输入字符串并逆向打印 找不出错误 感谢!

#include
int read(char s[100]);
void print(char s[100]);
int read(char s[100])
{
int ch,i;
while((ch=getchar())!='\n')
{
for(i=0;i {
s[i]=ch;
}
}
s[i]='\0';
return i;
}
void print(char s[100])
{
int j,i=read(s);
for(j=i-1;j>=0;j--)
{
printf("%c",s[j]);
}
}
int main()
{
char s[100];
print(s);
return 0;
}

5个回答

Smile_IT_life
Smile_IT_life   2017.01.06 15:51
已采纳

#include
int read();
char sh[100];
void print(char s[100]);
int read()
{
int ch,i=0;
while((ch=getchar())!='\n')
{

sh[i]=ch;
i++;
}
sh[i]='\0';
return i;
}
void print(char s[100])
{
int j,i=read(sh);
for(j=i-1;j>=0;j--)
{
printf("%c",s[j]);
}
}
int main()
{
print(sh);
getchar();
return 0;
}

fushangde123
fushangde123   2017.01.06 15:24

代码错误 read() 改下

 int read(char s[100])
{
    int ch, i = 0;
    while ((ch = getchar()) != '\n')
    {
    //  for (i = 0; i{
            s[i++] = ch;
    //  }
    }
    s[i] = '\0';
    return i;
}
ai977313677
ai977313677   2017.01.06 15:25

看情况你应该是少输出了一个字符,把s[i]='\0'改成s[i+1]='\0'就行了

ai977313677
ai977313677   2017.01.06 15:28

楼上说的for也要去掉

Smile_IT_life
Smile_IT_life   2017.01.06 15:43

你这是完整代码?看不懂这样写的意义,都没有获取输入,如何输出?read函数不应该有参数,记录输入要设置全局变量,局部变量不可能获取的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!