printf里面用引号引起来的应该没什么意思吧
只是原样输出。

还没搞懂?论坛上以前曾讨论过相似的问题。缓冲区残余信息造成的。
给你一例子:
int main() {
char c[80];
printf("1. gets():"); gets(c); printf(" c = %s\n",c);
printf("1. gets():"); gets(c); printf(" c = %s\n",c);
printf("2. scanf):"); scanf("%s",c); printf(" c = %s\n",c);
printf("2. gets():"); gets(c); printf(" c = %s\n",c);
}
考虑一下最后一个gets为什么不正常?
碰到这样的问题解决啊?
fflush(stdin);
gets(a);
![]() 大哥,你终于出现了,非常感谢你的帮忙,再帮我看看这个函数: void sort(int*p,int k) { int t,i,j ; for(i=0;i<k-1;i++) for(j=i+1;i<k;j++)///这里有个死循环把 i 该成 j 就好了 if(p[i]>p[j]) { t=p[i]; p[i]=p[j]; p[j]=t ; } printf("After sort:\n"); for(i=0;i<k;i++) printf("%6d",p[i]); printf("\n"); return ; } |