2012-03-03 8 views
1

関数から渡される配列の情報はどのように使用できますか?Cの関数から配列を渡してスタックを持つスタック

#include <stdio.h> 

double get_number(double[]); 

main { 

double x, z[100]; 
char m; 

do { 
x = get_number[z]; 
printf("More numbers?"); 
scanf (" %c", &m); 

     } 
while ((m == 'Y')||(m == 'y')) 
} 


double get_number(double arr[]) 
{ 
    printf ("Please enter number : ?"); 
    scanf("%d", &arr); 
    return arr; 
} 

例についてときにユーザプレス数回Yと二つまたは3つの数字で満たさアレイ。 どのようにそれらの番号で操作できますか?それらを数えるか、またはそれらを表示するだけです。

+0

コードをフォーマットしてください。どのようにしてこのWebサイトを見てください。 –

+0

あなたの質問は何ですか?さまざまなコンパイルエラーを手助けしますか? –

+0

このコードは私にとっては混乱しています。 – Jack

答えて

1

for()ループを使用します。

for (int i = 0; i < array_size; i++) { 
    printf ("Number at index %d: %f", i, arr[i]); 
} 

もちろん、事前にサイズを知る必要があります。そして、持っていない、なぜそのような配列、とのscanf()を使用していない:

double get_input() 
{ 
    double number = 0; 

    printf ("Please enter number: "); 
    scanf ("%d", &number); 

    return number; 
} 

固定なものにするために、あなたの配列の長さを定義します。

#define ARRAY_SIZE 1024 

あなたはそれ以上を必要とする場合、増加リスト構造を使用することを検討してください。そして、あなたが入力を取得

double array[ARRAY_SIZE]; 
for (int i = 0; i < ARRAY_SIZE; i++) array[i] = 0; 

希望これは

EDIT

あなたは合計を持っているしたい場合は、たとえば、あなたが最初の配列を初期化する必要があるのに役立ちます:

char input; 
int counter = 0; 
do { 
    if (counter > ARRAY_SIZE) break; // dont cause a segmentation fault 

    scanf ("%c", &input); 
    double number = get_input(); 
    array[counter] = number; 

} while (input == 'Y' || input == 'y'); 

次にthats完了したら、配列を通ってまとめてください:

int sum = 0; 
for (int i = 0; i < ARRAY_SIZE; i++) { 
    sum += array[i]; 
} 
+0

申し訳ありませんが、おそらく私のコードはここにいくつかの問題を抱えているかもしれませんが、私は関数から得られる配列を操作する方法のアイデアを知る必要があります。例えば、ユーザーが配列1を、次に番号2を、数字3、次回ユーザーが続行するかどうかを尋ねるときに、いいえを押して、配列からそれらの数字を操作する方法を知りたいですか? たとえば1 + 2 + 3を数えます。 printf( "あなたの配列の合計は6です"); –

+0

vanneto、ありがとう、あなたは私を助けてくれました。 –

関連する問題