2011-01-31 15 views
0

scanf()を使用して複数の値を取るコードを作成しようとしています。以前の入力が何であったかによって異なります。同様に例えば前の変数から複数のscanf入力を取り込む方法

printf("enter how many trips you are taking:"); 
scanf("%f", &trip) 

printf("please enter the cost of each trip:"); 

^- 明白な答えは、ループ内で値を読み取ることであろうイムコスト

答えて

0

の入力値の数を制限することなく、複数の入力値でスキャンする方法を考え出す問題が発生しました:

float *trip_costs; 
trip_costs = malloc(trip * sizeof(*trip_costs)); 

for (i=0; i<trip; i++) 
    scanf("%f", trip_costs + i); 

はまた、あなたは、カウントのためにそれを使用していることから、tripはおそらく整数型などしたほうが良いだろうことに注意してください。

+0

唯一の問題は私の教授が私たちに、この入力をwhileとwhileループのためのminmumeの使用だけで受け入れることを要求していることです。 – Thao

+1

@Thao:1つのループはかなり最小です。本当に(明示的な)ループなしでそれをしたいのであれば、Fortranはそれを提供しますが、Cは本当にありません。 –

0

scanf()コールが(私があなたが望むと思っていた通りに)行うとは思わない。書式文字列はコンストラクタブルですが、実際の関数呼び出しはありません。つまり、実行時に宛先ポインタ引数の条件付きでの数を可変することができないという意味ではありません。あなたはジェリー・コフィンの答えをループで使ってください。

関連する問題