a.c
c
1#include <stdio.h>
2
3int main(void)
4{
5 int data;
6 printf("Enter : ");
7 scanf("%d", &data);
8
9 // 目盛りを表示
10 for (int i = 1; i <= 30; i++) {
11 char c = '-';
12 if (i % 10 == 0) {
13 c = '0' + i / 10;
14 } else if(i % 5 == 0) {
15 c = '+';
16 }
17 printf("%c", c);
18 }
19 printf("\n");
20
21 // data個の*でグラフ表示
22 for (; data > 0; data--) {
23 printf("*");
24 }
25 printf("\n");
26 return 0;
27}
実行例
追記
コードは長くなりますが、今後 発展させやすいようにしてみました。
c
1#include <stdio.h>
2#include <string.h>
3
4#define BUF_LEN (256)
5const char RULER_MARK[] = "1234567890";
6const char ruler10[] = "----+-----";
7const char MARK[] = "*";
8
9void ruler(int len) {
10 char buf[BUF_LEN] = "";
11 const int unit = len / 10;
12
13 for (int i = 0; i <= unit; i++) {
14 strncat(buf, ruler10, BUF_LEN);
15 }
16 for (int i = 0; i <= unit; i++) {
17 buf[i * 10 + 9] = RULER_MARK[i % 10];
18 }
19 printf("%s\n", buf);
20}
21
22void plot(int data) {
23 char buf[BUF_LEN] = "";
24 for (int i = 1; i <= data; i++) {
25 strncat(buf, MARK, BUF_LEN);
26 }
27 printf("%s\n", buf);
28}
29
30int main(void) {
31 int data;
32 printf("Enter : ");
33 scanf("%d", &data);
34
35 ruler(data); // 目盛り
36 plot(data); // データ表示
37 plot(data / 2);
38 plot(data);
39 ruler(data); // 目盛り
40}
実行例
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。