それは宿題の一部ですが、主要な部分ではありません
自分で手動でデータを変更してメイン機能を作成しましたが、ユーザー入力を正しく読み取る方法がわかりません。
入力は次のようになります。
3
1 2 9
6
1 1 3 4 4 6
0
したがって、基本的に最初の入力は次の入力の#のサイズです。したがって、3の場合、配列はサイズ3で[1,2,9]が要素であり、6の場合、配列サイズは6であり、[1,1,3,4,4,6]が要素です。
また、入力が0の場合、プログラムは終了します。
whileループを使用し、input [0] = '0'でブレークすると、プログラムを終了できると思いますが、他の入力をchar配列に取り込む方法がわかりません。
ご覧のとおり、スペースがあるため、scanfはすべての整数を異なる方法でchar配列に読み込みます。
charの入力を取得したら、atoiを使用して整数に戻すことができると思います...
だから、ユーザー入力を正しく取得するためにどのようにコーディングする必要があるかを教えてください...
多分これはあまりにも曖昧でした:これが私がちょっと欲しいバージョンです:
while(1)
{
scanf("%d", &ui);
if(ui == 0)
{
break;
}
else
{
size = ui;
int temp[size];
for(c = 0; c < size; c++)
{
scanf("%d", &input);
temp[c] = input;
}
}
}
出力は最初の配列には適していますが、その後はtemp [size]のため、奇妙な出力になります。これを修正する方法はありますか?配列のサイズをユーザーが希望するサイズにしたいと思います。(例えば、私が上で書いた入力の場合:3と6)