当前位置: 代码迷 >> C语言 >> [求助]c语言中的反序
  详细解决方案

[求助]c语言中的反序

热度:368   发布时间:2006-09-21 17:03:49.0
[求助]c语言中的反序
{ char s[80],c; int n=0;
while((c=getchar())!='\n') s[n++]=c;
n--;
while(n>=0)printf("%c",s[n-1]);
}
如果输入一个Thank!
输出的是什么?为什么啊 ?
我感觉n是在1 0 -1 之间来回的循环
没法叫Thank!正常输出啊
搜索更多相关的解决方案: c语言  Thank  char  输出  

----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int n=0;
char s[10];
char c;
while((c=getchar())!='\n')
s[n++]=c;
while(n>0)
{
printf("%c",s[n-1]);
n--;
}
}
你看看这程序
----------------解决方案--------------------------------------------------------

s[n++]后 n=1 然后经过n--后 n又变成0
比如说要输出thank
这时候会先输出一个t
然后继续进行循环 但是我感觉输出的时候 s[n-1]
一直是在s[0]上进行的输出啊?
谁能帮忙解释下


----------------解决方案--------------------------------------------------------

第一个while语句循环后n就会等于6了


----------------解决方案--------------------------------------------------------

经过第一个while以后 n怎么就会成6了呢?应该是0吧


----------------解决方案--------------------------------------------------------

多看点书有关while循环


----------------解决方案--------------------------------------------------------
是死循环KKKKKKKK..............
注意括号范围
{ char s[80],c;
int n=0;
while((c=getchar())!='\n')
s[n++]=c;
n--; *( 这里n==5)
while(n>=0) (n==5)返回1.始终成立,死循环
printf("%c",s[n-1]); s[4]=='k'
}

----------------解决方案--------------------------------------------------------
s[n++]=c         这步就要返回了..不执行下面的n--了
----------------解决方案--------------------------------------------------------
要加上'\0'吧.

#include <stdio.h>
main()
{
int n=0;
char s[10];
char c;
while((c=getchar())!='\n')
s[n++]=c;
s[n]='\0';//字符串结束标志
printf("%s",s);

}

----------------解决方案--------------------------------------------------------

刚刚看错了,你要的是反序.
/* HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"

main()
{
char s[80],c; int n=0;
while((c=getchar())!='\n') s[n++]=c;
n--;
while(n>=0)
{
printf("%c",s[n]);
n--;
}


getch();
}


----------------解决方案--------------------------------------------------------
  相关解决方案