質問するログイン新規登録

質問編集履歴

1

ソースコードと出力結果を追加しました。

2020/06/18 02:47

投稿

yukatii
yukatii

スコア5

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,63 @@
10
10
 
11
11
  ###試したこと
12
12
  いろんなサイトで調べて、配列をgnuplotに渡すやり方はわかったのですが、縦軸を人数で表記するというやり方がどこにも載っていなかったので、考え方などを教えてくださるとうれしいです。
13
- よろしくお願いします。
13
+ よろしくお願いします。
14
+
15
+ ###ソースコード
16
+ 平均を計算するプログラムとグラフ化するプログラムを一旦分けているので、グラフ化の方だけ記述します。
17
+ ```
18
+ #include <stdio.h>
19
+
20
+
21
+ int main(void)
22
+ {
23
+ FILE *gp; //パイプを開く
24
+ int i;
25
+ int x[10];
26
+
27
+ for(i=0;i<10;i++){
28
+ x[i]=i*10;
29
+ }
30
+ gp=_popen("gnuplot -persist","w"); //gnuplot起動。-persistでずっと開いた状態にする
31
+
32
+
33
+ fprintf(gp,"set boxwidth 1\n"); //棒グラフの設定,棒の太さ
34
+ fprintf(gp, "set xrange [0:10]\n"); //x軸の表示設定
35
+ fprintf(gp, "set yrange [0:100]\n"); //y軸の表示設定
36
+
37
+ fprintf(gp,"plot '-' with boxes\n");
38
+ for(i=0;i<10;i++){
39
+ fprintf(gp,"%d\t%d\n",i,x[i]);
40
+ }
41
+ fprintf(gp,"e\n");
42
+
43
+ fflush(gp);
44
+ _pclose(gp);
45
+ return 0;
46
+ }
47
+ ```
48
+ このプログラムに、
49
+ ```
50
+ if(x[i]<=10) hist0+=1;
51
+ else if(11<=x[i]<=20)
52
+ hist1+=1;
53
+ else if(21<=x[i]<=30)
54
+ hist2+=1;
55
+ else if(31<=x[i]<=40)
56
+ hist3+=1;
57
+ else if(41<=x[i]<=50)
58
+ hist4+=1;
59
+ else if(51<=x[i]<=60)
60
+ hist5+=1;
61
+ else if(61<=x[i]<=70)
62
+ hist6+=1;
63
+ else if(71<=x[i]<=80)
64
+ hist7+=1;
65
+ else if(81<=x[i]<=90)
66
+ hist8+=1;
67
+ else if(91<=x[i]<=100)
68
+ hist9+=1;
69
+ ```
70
+ を追加したいと思っています。
71
+ #出力結果
72
+ ![イメージ説明](83a8c29906a8d571c0615901a7685cc1.png)