質問編集履歴
3
コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
if(head->next !=NULL)
|
36
36
|
max(head->next);
|
37
37
|
else{
|
38
|
-
for(j=0;j
|
38
|
+
for(j=0;j==k;j++){
|
39
39
|
printf("番号:%d,時間:%f,値:%f\n",j+1,max_time[j],max_score[j]);
|
40
40
|
}
|
41
41
|
}
|
2
直したコードをかいてあります。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
txtファイルからデータを取得し最大のscoreを出したいです。一応、0.5以上差が開いたら、新しい最大値をだしたいのでk++にしています。
|
4
|
+
変更後のコードです
|
5
|
+
```c
|
4
6
|
|
5
|
-
### 該当のソースコード
|
6
|
-
```c
|
7
7
|
#include<stdio.h>
|
8
8
|
#include<stdlib.h>
|
9
9
|
|
@@ -23,21 +23,22 @@
|
|
23
23
|
return new_head;
|
24
24
|
}
|
25
25
|
void max(struct lv *head){
|
26
|
-
for(i=0;i<100;i++){
|
27
26
|
if(head->score>max_score[k]){
|
28
27
|
max_score[k]=head->score;
|
29
28
|
max_time[k]=head->time;
|
30
29
|
}
|
31
30
|
else{
|
32
|
-
if(
|
31
|
+
if(max_score[k]-head->score >0.5){
|
33
32
|
k++;
|
34
33
|
}
|
35
34
|
}
|
35
|
+
if(head->next !=NULL)
|
36
|
+
max(head->next);
|
37
|
+
else{
|
38
|
+
for(j=0;j<100;j++){
|
39
|
+
printf("番号:%d,時間:%f,値:%f\n",j+1,max_time[j],max_score[j]);
|
40
|
+
}
|
36
41
|
}
|
37
|
-
max(head->next); //再帰呼び出し <-ここを消すと停止はしません
|
38
|
-
for(j=0;j=i;j++){
|
39
|
-
printf("%d,時間:%f,値:%f",j+1,max_time[j],max_score[j]);
|
40
|
-
}
|
41
42
|
}
|
42
43
|
void main(){
|
43
44
|
FILE *fp;
|
@@ -47,7 +48,7 @@
|
|
47
48
|
int i=1000,n=0;
|
48
49
|
|
49
50
|
if ((fp=fopen("s:\jx18250_0426_100Hz.txt","r"))==NULL){
|
50
|
-
printf("Cant open file %s\n", "
|
51
|
+
printf("Cant open file %s\n", "a.txt"); /*オープンに失敗したらメッセージ表示*/
|
51
52
|
}
|
52
53
|
while(fscanf(fp,"%f,%f",&t,&s)!= EOF){
|
53
54
|
head=add_list(t,s,head);
|
@@ -59,6 +60,5 @@
|
|
59
60
|
fclose(fp);
|
60
61
|
}
|
61
62
|
```
|
62
|
-
|
63
63
|
### 試したこと
|
64
|
-
max()の
|
64
|
+
max()のところはとまるのはなくなりましたが、時間、値が0.000のままです。txtからの時間、値がとりだせていることは確認済みです。
|
1
詳細
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
}
|
35
35
|
}
|
36
36
|
}
|
37
|
-
max(head->next); //再帰呼び出し
|
37
|
+
max(head->next); //再帰呼び出し <-ここを消すと停止はしません
|
38
38
|
for(j=0;j=i;j++){
|
39
39
|
printf("%d,時間:%f,値:%f",j+1,max_time[j],max_score[j]);
|
40
40
|
}
|