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

回答編集履歴

1

参考コード追記

2020/11/20 11:32

投稿

pepperleaf
pepperleaf

スコア6385

answer CHANGED
@@ -19,4 +19,38 @@
19
19
  また、`j`の変数は何を意味しているでしょうか? `han[N]`のインデックスにも参照されているようですが、多分、オーバーフローしてます。
20
20
 
21
21
  具体的にどう書き換えるかは、全体の流れを見直す事が必要です。
22
- (このコードの流れで書き換えるのはちょっと大変か?)
22
+ (このコードの流れで書き換えるのはちょっと大変か?)
23
+
24
+ 中のwhile() 内について、ちょっと参考コード。こんな感じかという事で。
25
+ ```C
26
+ while(cp!=NULL){
27
+ cp = strtok(NULL,sikiri);
28
+ if(cp!=NULL&&c==0){
29
+ strcpy(log[i].server_name,cp); //ここでサーバーの名前を挿入
30
+ //// ここから 対応するサーバー番号を探す hに設定 (無い場合は? ...)
31
+ // for(h=0;h<4;h++){
32
+ // if(strcmp(log[i].server_name, name[h])==0) break;
33
+ // }
34
+ }
35
+
36
+ if(cp!=NULL&&c==1){
37
+ strcpy(log[i].result,cp);//ここで結果を挿入
38
+ if(strncmp(log[i].result,"-",1)==0){ //1."-"かどうか
39
+ //// 障害が発生した場合には、それを記録 サーバー番号 h
40
+ // if (!han[h].count) { // ただし、最初に初期化で false としておく
41
+ // han[h].count = true;
42
+ // han[h].time = log[i].time
43
+ // }
44
+ }else{
45
+ //// 前回が障害の場合の処理
46
+ // if (han[h].count) {
47
+ // kikan=log[i].time - han[h].time;
48
+ // printf("サーバー%sが故障状態です\n",han[h].handan_name);
49
+ // printf("log.time is %ld\nhandan is %ld\n",log[i].time,han[h].time);
50
+ // printTime(kikan);
51
+ // han[h].count = false;
52
+ // }
53
+ }
54
+ }
55
+ }
56
+ ```