[求助]
哪位高手帮我分析一下 ,下面的程序哪里出错?非常感谢!输入一个字符串,按逆序输出。
#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
char a,b[79];
int i,j,n;
printf("请输入要输入字符的个数:\n");
scanf("%d",&n);
printf("请输入字符串:\n");
gets(b);
for(i=0;i<(n/2);i++)
{
a=b[n-i-1];
b[n-1-i]=b[i];
b[i]=a;
}
puts(b);
getch();
}
----------------解决方案--------------------------------------------------------
程序的逻辑应该没有问题, 关键在于scanf这个函数, 是有很多副作用的.
如果你把这个去掉, 改为用strlen求输入串的长度, 应该没有问题
----------------解决方案--------------------------------------------------------
谢了
----------------解决方案--------------------------------------------------------
//输入一个字符串,按逆序输出。 #include<stdio.h> #include<string.h> #include<conio.h> int main() { char a,b[79]; int i,j,n; printf("请输入要输入字符的个数:\n"); scanf("%d",&n); fflush(stdin); printf("请输入字符串:\n"); gets(b); for(i=0;i<(n/2);i++) { a=b[n-i-1]; b[n-1-i]=b[i]; b[i]=a; } puts(b); getch(); return 0; }
----------------解决方案--------------------------------------------------------
请问以下 fflush(stdin);这有什么功能?
----------------解决方案--------------------------------------------------------
清流函数
把内存缓冲区的还未读取的字符清空!!!
----------------解决方案--------------------------------------------------------
这在VC上不能运行啊,一运行就提示error : 'srdin' : undeclared identifier
----------------解决方案--------------------------------------------------------
晕!这程序不长也不难,既然你能写出来,那你细心一点、耐心一点也应该能找出毛病来!
----------------解决方案--------------------------------------------------------