質問編集履歴

2

誤字

2020/05/07 11:55

投稿

German_p0tat0
German_p0tat0

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,4 @@
1
- **青字の所をうめて演算子の優先度を表示するプログラムの問題をやっているのですが、関数priorityをどうすればいいかわかりません。~~strcmp関数でそれぞれを比較しても0、1、-1が分かるだけで、12,11,10などをどう戻り値にするかわからないです。~~
1
+ **青字の所をうめて演算子の優先度を表示するプログラムの問題をやっているのですが、関数priorityをどうすればいいかわかりません。~~strcmp関数でそれぞれを比較しても0、1、-1が分かるだけで、12,11,10などをどう戻り値にするかわからないです。~~**
2
-
3
- 戻り値をどうす**
4
2
 
5
3
  ```C
6
4
 

1

丸投げ訂正&現状

2020/05/07 11:55

投稿

German_p0tat0
German_p0tat0

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,42 +1,10 @@
1
- **青字の所をうめて演算子の優先度を表示するプログラムの問題をやっているのですが、関数priorityをどうすればいいかわかりません。strcmp関数でそれぞれを比較しても0、1、-1が分かるだけで、12,11,10などをどう戻り値にするかわからないです。**
1
+ **青字の所をうめて演算子の優先度を表示するプログラムの問題をやっているのですが、関数priorityをどうすればいいかわかりません。~~strcmp関数でそれぞれを比較しても0、1、-1が分かるだけで、12,11,10などをどう戻り値にするかわからないです。~~
2
+
3
+ 戻り値をどうす**
2
4
 
3
5
  ```C
4
6
 
5
- #include <stdio.h>
6
-
7
- #include <string.h>
8
-
9
- #define OPNUM 9
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
7
  int priority(char oplist[]){
20
-
21
- int i;
22
-
23
- for()
24
-
25
- return ;
26
-
27
- }
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
- int main(void){
38
-
39
- char *oplist[OPNUM] ={"+", "*", "-", "/", "&", "^", "%", "==", "!="};
40
8
 
41
9
  int i;
42
10
 
@@ -44,11 +12,31 @@
44
12
 
45
13
  for(i = 0; i < OPNUM; i++){
46
14
 
47
- printf("%s -> %d\n", oplist[i], priority(oplist[i]));
15
+ if(oplist[i] == "+" || oplist[i] == "-"){
16
+
17
+ oplist[i] = 10;
18
+
19
+ }else if(oplist[i] == "*" || oplist[i] == "/" || oplist[i] == "%"){
20
+
21
+ oplist[i] = 11;
22
+
23
+ }else if(oplist[i] == "^"){
24
+
25
+ oplist[i] = 12;
26
+
27
+ }else if(oplist[i] == "==" || oplist[i] == "!="){
28
+
29
+ oplist[i] = 9;
30
+
31
+ }else{
32
+
33
+ oplist[i] = -1;
34
+
35
+ }
48
36
 
49
37
  }
50
38
 
51
- return 0;
39
+ return oplist[i];
52
40
 
53
41
  }
54
42