
ソートを使い入力した数値を並び替える。昇順、降順を選べるようにする。
順位を付けるた。ただし、複数同位があった場合にはその個数分順位が変更する。
このような問題なのですが
入力個数の部分までは自力でできたのですが、ソートを習っていないのでこの後がよく分かりません。
下のような実行結果になるようだれかわかる人お願いします。
# include <stdio.h>
int main(void)
{
int a[100],kai=0,sentaku;
printf("整数を入力(CTRL+dで終了) >> ");
while(1){
if(scanf("%d",&a{kai}) == EOF )break;
kai=kai+1;
printf("整数を入力(CTRL+dで終了) >> "); }
printf("入力個数%d回\n",kai);
return 0;
}
実行結果
数値>>1
数値>>3
数値>>-1
数値>>-3
数値>>10
数値>>3
数値>>
入力回数:4回
1:昇順、2:降順>>1
NO.1:-3
NO.2:1
NO.3:3
NO.3:3
NO.5:10
A 回答 (3件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
こんにちは。
質問だけではアレなのでアドバイスを
まず必要とする入力と出力が何かをはっきりさせましょう。
その後、処理の流れを考えましょう。
それがキチンと出来てからコーディングを行いましょう。
でないと、修正,変更時にどこを見ればいいのか解らなくなります。
○入力:
並び替えする数字列、数字列の個数、昇順か降順か
○出力:
並び替えられた数字列
○処理の流れ:
【数字の入力】 → 【数字列の並び替え】 → 【数字列の表示】
処理内容が解りにくかったり、処理の規模が大きい場合は
各処理を更に分解していきます。
○コーディング:
処理の流れを基にして、C言語に翻訳していきます。
コーディング前に次の2点を確認しておいてください。
1.scanf
2.ソート
1.について、返り値が望んだものか確認してください。以下のコードで解ると思います。
私の環境では示されたコードで望んだ返り値は出ませんでした。
------
#include <stdio.h>
int main(void)
{
intvalue, retv;
retv = scanf("%d", &value);
printf( " value:[%d] result:[%d] EOF:[%d]\n", value, retv, EOF );
return 0;
}
------
2.について検索すればいくらでもヒットしますので好きなのを選んでください。
ただし、そのソートがどのように値を変更しているのかを確認しておいてください。
配列固定+初期値入りで確認した方が解りやすいです。以下の感じで
------
intval[5] = { 1, 3, -1, -3, 10 };
/* ソート始め */
/******/
/* ループ始め */
/******/
printf(" %d, %d, %d, %d, %d\n", val[0], val[1], val[2], val[3], val[4] );
/* ループ終わり */
/******/
/* ソート終わり */
------
ご参考までに。

No.2
- 回答日時:
こんにちは。
ご質問を拝見していて質問があるのですが
質問1.
問題では“ソートを使い~”なのに、
“ソートを習っていないので”って矛盾してませんか?
まずソートを習ってから解くのではと思うのですが。
質問2.
実行結果の後の表示が望まれる出力ですか?
このプログラムでこの出力は表示されないと思います。
以上、よろしくお願いします。
No.1
- 回答日時:
> 入力個数の部分までは自力でできた
本当ですか?
> if(scanf("%d",&a{kai}) == EOF )break;
コンパイル時にエラーが出ませんか?
>数値>>1
>数値>>3
>数値>>-1
>数値>>-3
>数値>>10
>数値>>3
>数値>>
>入力回数:4回
4回とは、どれを数えているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングのわかるサイト
-
C言語でアナグラムを求めるプロ...
-
【VBAマクロ:繰り返し処理に関...
-
C# ArrayListを二次元配列のよ...
-
C# ArrayList内の要素の並べ替え。
-
スプレッドでのソート
-
配列のソートの質問です。
-
MSFlexGridのSortメソッドについて
-
VB.NETでファイル名順にファイ...
-
Excelですべての組合せ(重複組...
-
In Design
-
TinyTableというスクリプトのソ...
-
Fortran77で多次元配列を並び替...
-
C言語・要素除去
-
クイックソート
-
クイックソートの可視化プログ...
-
配列の問題
-
【WPF】【C#】【XAML】LISTBOX
-
プログラミングに関する問題が...
-
構造体の配列について(2)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VBA基本構文の作り方 2列の...
-
C言語・要素除去
-
C# DataTableの行をソートしてD...
-
VB.NETでファイル名順にファイ...
-
構造体配列の並べ替え
-
あるディレクトリ内のファイル...
-
配列の問題
-
10個の整数を入力して小さい順...
-
2次元配列を複数項目でソートし...
-
構造体のリストをソートしたい。
-
DataGridViewソート時に先頭行...
-
DataGridViewのソートを止めたい
-
datagridviewの並べ替え
-
C++ 入力した3つのint型の整数...
-
DataGridViewの複数列を連動し...
-
Excelですべての組合せ(重複組...
-
C#のリストボックスで、クリッ...
-
VBScriptで重複レコードを削除...
おすすめ情報