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

回答編集履歴

1

追記

2019/07/06 00:05

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -30,4 +30,52 @@
30
30
  ```
31
31
 
32
32
  実行例
33
- ![イメージ説明](9c341db6dac3d9ad2338685a1677ca78.png)
33
+ ![イメージ説明](9c341db6dac3d9ad2338685a1677ca78.png)
34
+
35
+ 追記
36
+
37
+ コードは長くなりますが、今後 発展させやすいようにしてみました。
38
+ ```c
39
+ #include <stdio.h>
40
+ #include <string.h>
41
+
42
+ #define BUF_LEN (256)
43
+ const char RULER_MARK[] = "1234567890";
44
+ const char ruler10[] = "----+-----";
45
+ const char MARK[] = "*";
46
+
47
+ void ruler(int len) {
48
+ char buf[BUF_LEN] = "";
49
+ const int unit = len / 10;
50
+
51
+ for (int i = 0; i <= unit; i++) {
52
+ strncat(buf, ruler10, BUF_LEN);
53
+ }
54
+ for (int i = 0; i <= unit; i++) {
55
+ buf[i * 10 + 9] = RULER_MARK[i % 10];
56
+ }
57
+ printf("%s\n", buf);
58
+ }
59
+
60
+ void plot(int data) {
61
+ char buf[BUF_LEN] = "";
62
+ for (int i = 1; i <= data; i++) {
63
+ strncat(buf, MARK, BUF_LEN);
64
+ }
65
+ printf("%s\n", buf);
66
+ }
67
+
68
+ int main(void) {
69
+ int data;
70
+ printf("Enter : ");
71
+ scanf("%d", &data);
72
+
73
+ ruler(data); // 目盛り
74
+ plot(data); // データ表示
75
+ plot(data / 2);
76
+ plot(data);
77
+ ruler(data); // 目盛り
78
+ }
79
+ ```
80
+ 実行例
81
+ ![イメージ説明](1b6c8183ffa133f5c694a9b579634b86.png)