プログラミング 課題
さっぱり分かりません。解答例があれば助かるんですが、お願いします
問3:8桁の2進数の数字を入力すると、10進数に変換して表示するプログラム(prog11.c)
を作成しなさい。(配列の練習問題なので、数字を8 個格納できる1 次元配列を
用意し、2 進数の各桁の数字(0 または1)を8 回キーボードから入力して、そ
れぞれを配列に格納してから10 進数に変換するプログラムを作ってください)
問4:X 月Y 日からZ 日後の日付を求めるプログラム(prog12.c)を作成しなさい。
じぶんなりの解答はこれです
1 #include <stdio.h>
2
3 #define N 8
4
5 int main()
6 {
7 int i, d;
8 char a[N];
9
10 printf("Input %d bits binary number: ", N);
11 for (i = 0; i < N; i++)
12 scanf("%c", &a[i]);
13 d = 0;
14 for (i = 0; i < N; i++)
15 d = 2*d + ((a[i] == '0') ? 0 : 1);
16 printf("%d¥n", d);
17 return 0;
18 }
2)実行例
$ ./a.exe
Input 8 bits binary number: 10101010
170
$ ./a.exe
Input 8 bits binary number: 01010101
85
問4
2
3 #define N 12
4
5 int main()
6 {
7 int n, x, y, z, m, d;
8 int a[N] = {31,28,31,30,31,30,31,31,30,31,30,31};
9
10 printf("Input month and day in the MMDD format: ");
11 scanf("%d", &n);
12 x = n/100;
13 y = n%100;
14 printf("Input the number of days: ");
15 scanf("%d", &z);
16 m = x;
17 d = y+z;
18 while (d > a[m-1]) {
19 d = d - a[m-1];
20 m = (m == 12) ? 1 : m+1;
21 }
22 printf("The day after %d days of %d/%d is %d/%d.¥n", z, x, y, m, d);
23 return 0;
24 }
2)実行例
$ ./a.exe
Input month and day in the MMDD format: 0106
Input the number of days: 10
The day after 10 days of 1/6 is 1/16.
$ ./a.exe
Input month and day in the MMDD format: 0106
Input the number of days: 60
The day after 60 days of 1/6 is 3/7.
$ ./a.exe
Input month and day in the MMDD format: 0106
Input the number of days: 365
The day after 365 days of 1/6 is 1/6.
ちがうプログラムで同じ実行結果が出るものをつくれますか?
至急おねがいします 解説を付けてくれたらたすかります
補足
申し訳ありません。 N(0)は入力できるようにします(INPUT)。 またb=A-cN(m+1)はこれであっているようです。しかし、このままだとむりなんでしょうか