2016-04-10 11 views
0
#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は文字列として入力しますが、なぜですか?この簡単なプログラムでは希望の出力が得られませんか?

+0

あなたの教授がそれを望んでいたので。 –

+1

_何か期待していますか? – ForceBru

+0

@ user3121023あなたは正しいですが、説明してください。 – sgewraks

答えて

3

コードは実際には動作するように動作します。 3abcと入力すると、プログラムはabcを印刷します。 あなたが目指したのは、3と入力してからabcと入力し、もう一度Enterを押すと、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; 
} 
関連する問題