質問編集履歴

1

コードの修正

2022/09/18 10:55

投稿

lay55
lay55

スコア4

test CHANGED
File without changes
test CHANGED
@@ -7,25 +7,27 @@
7
7
 
8
8
  int main(void) {
9
9
 
10
- unsigned int n, a, n2[MAX_BIT];
10
+ unsigned int n=5, a, n2[MAX_BIT];
11
- int n10=0;
11
+ int n10 = 0;
12
12
  double x;
13
13
 
14
- scanf("%d", &n);
14
+
15
- for (int i = 0; i < MAX_BIT; i++) { // 入力したnを2進数に変換
15
+ for (int i = 0; i < MAX_BIT; i++) { // 入力したnを2進数に変換
16
- a = (unsigned int)1 << i;
16
+ a = (unsigned int)1 << i;
17
- if ((a & n) == 0) {
17
+ if ((a & n) == 0) {
18
- n2[i] = 0;
18
+ n2[i] = 0;
19
- }
20
- else {
21
- n2[i] = 1;
22
- }
23
19
  }
20
+ else {
21
+ n2[i] = 1;
22
+ }
23
+ }
24
+ for (int i = 0; i < MAX_BIT; i++) printf("%d", n2[i]); //2進数表示
24
25
 
25
26
  for (int i = 0; i < MAX_BIT; i++) { // nを10進数に戻す
26
- x = 0;
27
- x= pow(2, i);
27
+ x = pow(2, i);
28
+ if (n2[i] == 1) {
28
- n10 += n2[i] + (int)x;
29
+ n10 += (int)x;
30
+ }
29
31
  }
30
32
  printf("%d", n10);
31
33
  return 0;