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

質問編集履歴

3

名称の訂正

2017/12/19 01:27

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  2つの整数は共に16進数または10進数とします。16進数は「0x」を頭につけて、「0xabcd」のように入力します。Javaでは以下のように実装することができたのですが、C言語でインライン引数を用いたコードに書き直す際に以下の3点で困っています。
4
4
 
5
5
  ###発生している問題・エラーメッセージ
6
- ンライン引数で2つの整数の値と演算子を取得する方法が分からない
6
+ コマライン引数で2つの整数の値と演算子を取得する方法が分からない
7
7
  ```c
8
8
  //aの値、演算子、bの値を取得する
9
9
  int a;

2

発生している問題の追記

2017/12/19 01:27

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ###前提・実現したいこと
2
2
  16進数または10進数の2つの整数の和を16進数と10進数で求めるコードを書いています。
3
- 2つの整数は共に16進数または10進数とします。16進数は「0x」を頭につけて、「0xabcd」のように入力します。Javaでは以下のように実装することができたのですが、C言語でインライン引数を用いたコードに書き直す際に以下の2点で困っています。
3
+ 2つの整数は共に16進数または10進数とします。16進数は「0x」を頭につけて、「0xabcd」のように入力します。Javaでは以下のように実装することができたのですが、C言語でインライン引数を用いたコードに書き直す際に以下の3点で困っています。
4
4
 
5
5
  ###発生している問題・エラーメッセージ
6
6
  ①インライン引数で2つの整数の値と演算子を取得する方法が分からない
@@ -23,7 +23,21 @@
23
23
  int b_dec = Integer.decode(b);
24
24
  ```
25
25
 
26
+ ③switch文中の10進数で出た計算結果を16進数に変換する部分を C言語でどのように実装したら良いか分からない。
26
27
 
28
+ ```
29
+ case "+":
30
+ int result_dec = a_dec + b_dec;
31
+           //10進数から16進数に変更
32
+ char result_hex = Integer.toHexString(result_dec);
33
+ printf(" %s¥n", result_hex);
34
+ printf("(" );
35
+ printf(" %d", result_dec);
36
+ printf(")");
37
+ break;
38
+ ```
39
+
40
+
27
41
  ###該当のソースコード
28
42
  ```c
29
43
  #include<stdio.h>
@@ -49,20 +63,22 @@
49
63
 
50
64
  switch(operator){
51
65
  case "+":
52
- int result_dec = a_dec + b_dec;
66
+ int result_dec = a_dec + b_dec;
67
+           //
53
68
  char result_hex = Integer.toHexString(result_dec);
54
- printf(" %d¥n", result_hex);
69
+ printf(" %s¥n", result_hex);
55
70
  printf("(" );
56
- printf(" %s", result_dec);
71
+ printf(" %d", result_dec);
57
72
  printf(")");
58
73
  break;
59
74
 
60
75
  case "-":
61
76
  int result_dec = a_dec - b_dec;
77
+ //
62
78
  char result_hex = Integer.toHexString(result_dec);
63
- printf(" %d¥n", result_hex);
79
+ printf(" %s¥n", result_hex);
64
80
  printf("(" );
65
- printf(" %s", result_dec);
81
+ printf(" %d", result_dec);
66
82
  printf(")");
67
83
  break;
68
84
  }

1

Cのコード修正

2017/12/19 00:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,19 +51,24 @@
51
51
  case "+":
52
52
  int result_dec = a_dec + b_dec;
53
53
  char result_hex = Integer.toHexString(result_dec);
54
+ printf(" %d¥n", result_hex);
54
- printf(result_hex);
55
+ printf("(" );
55
- printf("(" + result_dec + ")");
56
+ printf(" %s", result_dec);
57
+ printf(")");
56
58
  break;
57
59
 
58
60
  case "-":
59
61
  int result_dec = a_dec - b_dec;
60
62
  char result_hex = Integer.toHexString(result_dec);
63
+ printf(" %d¥n", result_hex);
61
- printf(result_hex);
64
+ printf("(" );
62
- printf("(" + result_dec + ")");
65
+ printf(" %s", result_dec);
66
+ printf(")");
63
67
  break;
64
68
  }
65
69
 
66
70
 
71
+
67
72
  }
68
73
  ```
69
74