2017-03-12 12 views
0

配列に値を格納するために関数fillarrayを実装しようとしています。しかし、要素は配列に格納されていません。要素を他の関数の配列に格納する

CODE:あなたは、彼らが配列に格納されていないことを知っていますどのように

#include<stdio.h> 

void fillarray(int array[],int num) 
{ 
    int i; 
    printf("\nenter your %d numbers",num); 
    for(i=0;i<num;i++) 
    { 
     scanf("%d",&array[i]); 
    } 
} 

void printarray(int array[],int num) 
{ 
    int i; 
    printf("\n\nyour array is : \n"); 
    for(i=0;i<num;i++); 
    { 
     printf("%d",array[i]); 
    } 
} 

int main() 
{ 
    printf("\nhow many numbers??\n"); 
    int num,i; 
    scanf("%d",&num); 
    int array[num]; 
    fillarray(array,num); 
    printarray(array,num); 
} 
+2

あなたはどのように知っていますか?デバッガは何を言いますか?なぜ 'scanf'の結果をチェックしないのですか?それは何を返すのですか?入力は何ですか? [ask]を読んでアドバイスに従ってください! – Olaf

+1

デバッガの使用方法を学びます。それは将来的にも恩恵を受けるでしょう。 –

答えて

2

- 彼らは印刷されていないので、これは?あなたのprintarray機能にタイプミスがありますのでです

- 行の末尾にセミコロンを削除します。現時点では何が起こっている

for(i=0;i<num;i++); 

は、ループが何もしないということです。終了すると、iには値numが含まれます。次に、Undefined Behaviorを呼び出す配列のインデックスを出力しようとします。

お、scanfの結果を@Olafsaid in his commentとしてください。

+0

作品...ありがとう –

関連する問題