回答編集履歴

1

追記

2019/07/06 00:05

投稿

katoy
katoy

スコア22324

test CHANGED
@@ -63,3 +63,99 @@
63
63
  実行例
64
64
 
65
65
  ![イメージ説明](9c341db6dac3d9ad2338685a1677ca78.png)
66
+
67
+
68
+
69
+ 追記
70
+
71
+
72
+
73
+ コードは長くなりますが、今後 発展させやすいようにしてみました。
74
+
75
+ ```c
76
+
77
+ #include <stdio.h>
78
+
79
+ #include <string.h>
80
+
81
+
82
+
83
+ #define BUF_LEN (256)
84
+
85
+ const char RULER_MARK[] = "1234567890";
86
+
87
+ const char ruler10[] = "----+-----";
88
+
89
+ const char MARK[] = "*";
90
+
91
+
92
+
93
+ void ruler(int len) {
94
+
95
+ char buf[BUF_LEN] = "";
96
+
97
+ const int unit = len / 10;
98
+
99
+
100
+
101
+ for (int i = 0; i <= unit; i++) {
102
+
103
+ strncat(buf, ruler10, BUF_LEN);
104
+
105
+ }
106
+
107
+ for (int i = 0; i <= unit; i++) {
108
+
109
+ buf[i * 10 + 9] = RULER_MARK[i % 10];
110
+
111
+ }
112
+
113
+ printf("%s\n", buf);
114
+
115
+ }
116
+
117
+
118
+
119
+ void plot(int data) {
120
+
121
+ char buf[BUF_LEN] = "";
122
+
123
+ for (int i = 1; i <= data; i++) {
124
+
125
+ strncat(buf, MARK, BUF_LEN);
126
+
127
+ }
128
+
129
+ printf("%s\n", buf);
130
+
131
+ }
132
+
133
+
134
+
135
+ int main(void) {
136
+
137
+ int data;
138
+
139
+ printf("Enter : ");
140
+
141
+ scanf("%d", &data);
142
+
143
+
144
+
145
+ ruler(data); // 目盛り
146
+
147
+ plot(data); // データ表示
148
+
149
+ plot(data / 2);
150
+
151
+ plot(data);
152
+
153
+ ruler(data); // 目盛り
154
+
155
+ }
156
+
157
+ ```
158
+
159
+ 実行例
160
+
161
+ ![イメージ説明](1b6c8183ffa133f5c694a9b579634b86.png)