Yellow_Jay
2016-04-27 11:27
采纳率: 33.3%
浏览 1.4k
已采纳

简单的C语言程序--小白求助

#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ㄒ)/~~

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 小灸舞 2016-04-27 13:01
    已采纳

    每次进入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);
        }
    
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • lambda-fk 2016-04-27 11:34

    编译器问题吧
    我在dev-c++中试验了没问题啊

    评论
    解决 无用
    打赏 举报
  • sunny_128 2016-04-27 13:00

    运行到哪一步出错?是不是你输入的n超过1000了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题