[求助]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!正常输出啊
----------------解决方案--------------------------------------------------------
#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();
}
----------------解决方案--------------------------------------------------------