#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int N,n,i;
char t[1000],s[1000];
scanf("%d",&N);
while(N--)
{
gets(t);
scanf("%d",&n);
for(i=0;i<n;i++)
s[i] = t[i];
s[n] = '\0';
puts(s);
}
}
这样写为什么程序运行的时候会出错啊/(ㄒoㄒ)/~~
每次进入while循环的时候fflush(stdin)清空一下输入缓冲区,不然遗留的回车符会被gets读走
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int N,n,i;
char t[1000],s[1000];
scanf("%d",&N);
while(N--)
{
fflush(stdin);
gets(t);
scanf("%d",&n);
for(i=0;i<n;i++)
s[i] = t[i];
s[n] = '\0';
puts(s);
}
}
编译器问题吧
我在dev-c++中试验了没问题啊
运行到哪一步出错?是不是你输入的n超过1000了