Generation

generate functionSat, 03 Dec 2022

void型の関数 histgram2() は、4つの引数をもち、順に [0,100] の範囲の値を要素にもつint型の配列変数 a[]、配列 a[] のサイズを表すint型の値 n、および、ヒストグラムの値を代入するためのint型の配列変数 h[]、ヒストグラムの区間の幅を表す int型の値 m である。 histgram2() は、与えられた配列変数 a[] の要素の値が、[0,m-1], [m,2m-1],・・・ それぞれの区間にいくつ含まれるかを h[] の要素として順に代入する関数である。histgram2() 関数を定義しなさい。また、この histgram2() 関数を利用して、配列の大きさ n を自然数として入力した後、続けて n 個の整数値を入力し、さらにヒストグラムの区間の幅 m の値を正整数として入力すると、[0,m-1], [m,2m-1],・・・ のそれぞれの区間と、そこに入力した n 個の整数値がいくつ含まれるかを一行ずつ出力するプログラムを作成しなさい。このとき、区間と個数の数値はすべて3文字幅で表示し、また、区間の範囲を -(半角のマイナス)、区間と個数の区切りとして : (半角コロン)を表示しなさい。 ただし、n または m の値に 0 以下の値が入力される、とプログラムは何も出力せずに終了するものとする。また、n 個の正整数のとして 0〜100 以外の値が入力された場合、その値は無視される(n 個の整数としては扱われず捨てられる)ものとする。

void histgram2(int a[], int n, int h[], int m) { int i, j, k; i = 0; j = 0; k = 0; while (i < n) { if (m * k <= a[i] && a[i] < m * (k + 1)) { h[k]++; } else { k++; h[k]++; } i++; } }

Questions about programming?Chat with your personal AI assistant