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

質問編集履歴

4

コードの編集

2020/05/23 08:09

投稿

grape_ll
grape_ll

スコア83

title CHANGED
File without changes
body CHANGED
@@ -52,7 +52,7 @@
52
52
  char ans[1000];
53
53
  int i=0,j=0;
54
54
  while(scanf("%s",name[i])!=EOF){
55
- scanf("%lf %lf",height[i],weight[i]);
55
+ scanf("%lf %lf",&height[i],&weight[i]);
56
56
  BMI[i]=weight[i]/(height[i]*height[i]);
57
57
  if(BMI[i]<ansBMI){
58
58
  strcpy(ans,name[i]);

3

コードの編集

2020/05/23 08:09

投稿

grape_ll
grape_ll

スコア83

title CHANGED
File without changes
body CHANGED
@@ -45,7 +45,7 @@
45
45
  #include<stdio.h>
46
46
  #include<string.h>
47
47
  int main(void){
48
- char name[1000][10100];
48
+ char name[1000][50];
49
49
  double height[1000],weight[1000];
50
50
  double BMI[1000];
51
51
  double ansBMI=10000;
@@ -57,6 +57,7 @@
57
57
  if(BMI[i]<ansBMI){
58
58
  strcpy(ans,name[i]);
59
59
  }
60
+ i++;
60
61
  }
61
62
  printf("%s\n",ans);
62
63
  return 0;

2

コードの修正

2020/05/23 07:41

投稿

grape_ll
grape_ll

スコア83

title CHANGED
@@ -1,1 +1,1 @@
1
- C-dで入が終わるときのき終了条件
1
+ 標準出でなにも表示されな
body CHANGED
@@ -1,21 +1,6 @@
1
1
  ### 質問内容
2
- 入力のうまい終わらせ方が分からないです。
3
- 入力が全て数字だったらけるのですが,文字列入ってくると分からないです。
2
+ コンパイル時にエラーは出ないのですが出力何も出ないです。
4
- 全部を文字列として受け取るやり方もあるのかなと思ったのですが。数字の部分を取り出す操作が煩雑になりそうなのであまり好ましくないです。
5
- 以下に問題と僕が書いてうまくいかなかったコードを書きます。
6
- コードはエラーはでませんでした。
7
- よろしくお願いします。
8
3
 
9
- ### うまくいかなかったこと
10
- 入力がおかしくなってしまった。
11
- PS C:\Users\rokok\proc\01> ./try
12
- PS C:\Users\rokok\proc\01> taro 183.3 65.5
13
- >>
14
- >> syo 177.9 63.8
15
- >>
16
- >> taisuke 173.1 61.1
17
- >>
18
- >> ryo 175.4 60.0
19
4
 
20
5
  ### 問題
21
6
  肥満度を知るのに BMI (Body Mass Index) がよく使われる。BMI は、 体重 w Kg, 身長 h m に対してつぎの式で定義される値をいう。
@@ -58,25 +43,22 @@
58
43
  ### コード
59
44
  ```C
60
45
  #include<stdio.h>
46
+ #include<string.h>
61
47
  int main(void){
62
- char name[1000][10100];
48
+ char name[1000][10100];
63
- double height[1000],weight[1000];
49
+ double height[1000],weight[1000];
64
- double BMI[1000];
50
+ double BMI[1000];
65
- double ansBMI=10000;
51
+ double ansBMI=10000;
66
- char ans[1000];
52
+ char ans[1000];
67
- int i=0,j=0;
53
+ int i=0,j=0;
68
- while(scanf("%s",name[i])!=EOF){
54
+ while(scanf("%s",name[i])!=EOF){
69
- scanf("%d %d",height[i],weight[i]);
55
+ scanf("%lf %lf",height[i],weight[i]);
70
- BMI[i]=weight[i]/height[i]*2;
56
+ BMI[i]=weight[i]/(height[i]*height[i]);
71
- if(BMI[i]<ansBMI){
57
+ if(BMI[i]<ansBMI){
72
- while(name[j]!="\0"){
73
- ans[j]=name[i][j];
58
+ strcpy(ans,name[i]);
74
- j++;
75
- }
59
+ }
76
- j=0;
77
- }
60
+ }
78
- }
79
- printf("%s\n",ans);
61
+ printf("%s\n",ans);
80
- return 0;
62
+ return 0;
81
63
  }
82
64
  ```

1

問題点の具体化

2020/05/22 01:54

投稿

grape_ll
grape_ll

スコア83

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,16 @@
6
6
  コードはエラーはでませんでした。
7
7
  よろしくお願いします。
8
8
 
9
+ ### うまくいかなかったこと
10
+ 入力がおかしくなってしまった。
11
+ PS C:\Users\rokok\proc\01> ./try
12
+ PS C:\Users\rokok\proc\01> taro 183.3 65.5
13
+ >>
14
+ >> syo 177.9 63.8
15
+ >>
16
+ >> taisuke 173.1 61.1
17
+ >>
18
+ >> ryo 175.4 60.0
9
19
 
10
20
  ### 問題
11
21
  肥満度を知るのに BMI (Body Mass Index) がよく使われる。BMI は、 体重 w Kg, 身長 h m に対してつぎの式で定義される値をいう。