[解決済み] cでヒストグラムを生成する
2022-02-10 16:49:47
質問
C言語でこのヒストグラムを作成するのに行き詰っています。課題は、すべてのユーザー入力が発生する頻度を数えることです。
についてです。 1 0 6 1 5 0 7 9 0 7 --> 3x 0, 2x 1, などがあります。
そうすると、出現回数ではなく、星に変換する必要があります。1番目と3番目のステップはカバーできたと思うのですが、数を星に変換するところで苦労しています。新たにループを作る必要があるのか、それとも現在のネストされたループを使うのか、教えてください。何かヒントを与えてくれる人がいたら、一生感謝します。
というわけで、私の練習は
- ユーザーに入力を求め、配列に格納する
- 配列を処理し,ヒストグラム配列を生成します.
- ヒストグラムを星で表示する
私のコード
#include <stdio.h>
void printHistogram ( int *hist, int n );
int main() {
int i, j;
int inputValue;
printf("Input the amount of values: \n");
scanf("%d", &inputValue);
int hist[inputValue];
printf("Input the values between 0 and 9 (separated by space): \n");
for (i = 0; i < inputValue; ++i) {
scanf("%d", &hist[i]);
}
int results[10] = {0};
// Processing data to compute histogram, see 5.17
for (i = 0; i < 10; ++i) {
for(j = 0; j < inputValue; j++) {
if ( hist[j] == i){
results[i]++;
}
}
}
printf("\n");
printHistogram(hist, 10);
return 0;
}
void printHistogram(int *hist, int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("[%d] ", i);
for ( j = 0; j < hist[i]; ++j) {
printf("*");
}
printf("\n");
}
}
入力
10
1 0 6 1 5 0 7 9 0 7
出力
Input the amount of values:
Input the values between 0 and 9 (separated by space):
[0] *
[1]
[2] ******
[3] *
[4] *****
[5]
[6] *******
[7] *********
[8]
[9] *******
出力する必要があります。
Input the amount of values: 10
Input the values between 0 and 9 (separated by space):
[0] ***
[1] **
[2]
[3]
[4]
[5] *
[6] *
[7] **
[8]
[9] *
解決方法は?
rafix07 がコメントしているように、単に
printHistogram(results, 10)
の代わりに
printHistogram(hist, 10)
.
すでにコンパイルしてテスト済み...動作します。
関連
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
-
[解決済み] C言語でランダムなint型を生成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み] テスト
-
[解決済み] [Solved] なぜこのようなエラーが発生するのでしょうか。「データ定義に型またはストレージクラスがない」?
-
[解決済み】malloc():メモリ破壊
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない
-
[解決済み] array[100] = {0}で配列全体を0にする方法とは?