質問編集履歴

4

コードの編集

2020/05/23 08:09

投稿

grape_ll
grape_ll

スコア83

test CHANGED
File without changes
test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
  while(scanf("%s",name[i])!=EOF){
108
108
 
109
- scanf("%lf %lf",height[i],weight[i]);
109
+ scanf("%lf %lf",&height[i],&weight[i]);
110
110
 
111
111
  BMI[i]=weight[i]/(height[i]*height[i]);
112
112
 

3

コードの編集

2020/05/23 08:09

投稿

grape_ll
grape_ll

スコア83

test CHANGED
File without changes
test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  int main(void){
94
94
 
95
- char name[1000][10100];
95
+ char name[1000][50];
96
96
 
97
97
  double height[1000],weight[1000];
98
98
 
@@ -116,6 +116,8 @@
116
116
 
117
117
  }
118
118
 
119
+ i++;
120
+
119
121
  }
120
122
 
121
123
  printf("%s\n",ans);

2

コードの修正

2020/05/23 07:41

投稿

grape_ll
grape_ll

スコア83

test CHANGED
@@ -1 +1 @@
1
- C-d入力が終わるときのきれいな終了条件
1
+ 標準出力なにも表示さ
test CHANGED
@@ -1,38 +1,8 @@
1
1
  ### 質問内容
2
2
 
3
- 入力のうまい終わらせ方が分からないです。
4
-
5
- 入力が全て数字だったらけるのですが,文字列入ってくると分からないです。
3
+ コンパイル時にエラーは出ないのですが出力何も出ないです。
6
-
7
- 全部を文字列として受け取るやり方もあるのかなと思ったのですが。数字の部分を取り出す操作が煩雑になりそうなのであまり好ましくないです。
8
-
9
- 以下に問題と僕が書いてうまくいかなかったコードを書きます。
10
-
11
- コードはエラーはでませんでした。
12
-
13
- よろしくお願いします。
14
4
 
15
5
 
16
-
17
- ### うまくいかなかったこと
18
-
19
- 入力がおかしくなってしまった。
20
-
21
- PS C:\Users\rokok\proc\01> ./try
22
-
23
- PS C:\Users\rokok\proc\01> taro 183.3 65.5
24
-
25
- >>
26
-
27
- >> syo 177.9 63.8
28
-
29
- >>
30
-
31
- >> taisuke 173.1 61.1
32
-
33
- >>
34
-
35
- >> ryo 175.4 60.0
36
6
 
37
7
 
38
8
 
@@ -118,45 +88,39 @@
118
88
 
119
89
  #include<stdio.h>
120
90
 
91
+ #include<string.h>
92
+
121
93
  int main(void){
122
94
 
123
- char name[1000][10100];
95
+ char name[1000][10100];
124
96
 
125
- double height[1000],weight[1000];
97
+ double height[1000],weight[1000];
126
98
 
127
- double BMI[1000];
99
+ double BMI[1000];
128
100
 
129
- double ansBMI=10000;
101
+ double ansBMI=10000;
130
102
 
131
- char ans[1000];
103
+ char ans[1000];
132
104
 
133
- int i=0,j=0;
105
+ int i=0,j=0;
134
106
 
135
- while(scanf("%s",name[i])!=EOF){
107
+ while(scanf("%s",name[i])!=EOF){
136
108
 
137
- scanf("%d %d",height[i],weight[i]);
109
+ scanf("%lf %lf",height[i],weight[i]);
138
110
 
139
- BMI[i]=weight[i]/height[i]*2;
111
+ BMI[i]=weight[i]/(height[i]*height[i]);
140
112
 
141
- if(BMI[i]<ansBMI){
113
+ if(BMI[i]<ansBMI){
142
114
 
143
- while(name[j]!="\0"){
115
+ strcpy(ans,name[i]);
144
116
 
145
- ans[j]=name[i][j];
117
+ }
146
118
 
147
- j++;
119
+ }
148
120
 
149
- }
121
+ printf("%s\n",ans);
150
122
 
151
- j=0;
152
-
153
- }
154
-
155
- }
156
-
157
- printf("%s\n",ans);
158
-
159
- return 0;
123
+ return 0;
160
124
 
161
125
  }
162
126
 

1

問題点の具体化

2020/05/22 01:54

投稿

grape_ll
grape_ll

スコア83

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,26 @@
13
13
  よろしくお願いします。
14
14
 
15
15
 
16
+
17
+ ### うまくいかなかったこと
18
+
19
+ 入力がおかしくなってしまった。
20
+
21
+ PS C:\Users\rokok\proc\01> ./try
22
+
23
+ PS C:\Users\rokok\proc\01> taro 183.3 65.5
24
+
25
+ >>
26
+
27
+ >> syo 177.9 63.8
28
+
29
+ >>
30
+
31
+ >> taisuke 173.1 61.1
32
+
33
+ >>
34
+
35
+ >> ryo 175.4 60.0
16
36
 
17
37
 
18
38