在这个简单的程序中没有获得所需的输出?

时间:2016-04-10 12:20:48

标签: c scanf

#include<stdio.h>
int main()
{
    int i;int n;
    scanf("%d",&n);
    char a[n];
    for(i=0;i<n;i++)
        scanf("%c",&a[i]);
    for(i=0;i<n;i++)
        printf("%c",a[i]);
    return 0;
}

//字符串没有完全重复 // scanf以字符串形式输入,但为什么?

1 个答案:

答案 0 :(得分:3)

您的代码实际上应该按照应有的方式运行。输入3abc后,该程序将打印出abc。 我猜你的目标是输入3,然后按回车键并输入abc,再次按回车键abc应打印出来。为此,您必须调整第一个scanf调用。

#include<stdio.h>
int main()
{
    int i;int n;
    scanf("%d\n",&n); //add \n in order to read the "pressing enter"
        char a[n];
    for(i=0;i<n;i++)
        scanf("%c",&a[i]);
    for(i=0;i<n;i++)
        printf("%c",a[i]);
    return 0;
}