プロが教える店舗&オフィスのセキュリティ対策術

うまく動作しないのですが、以下のプログラムのどこが間違っているのでしょうか?
たぶん、メイン関数の宣言の部分だと思うのですが・・・。

#include<stdio.h>
typedef struct Time{
int hour;
int second;
int minute;
}Time;
int main(void){
Time time1,time2,time3;
Time time[3];
int i;
for(i=0;i<3;i++){
printf("time%dの時間を入力\n",i+1);
  scanf("%d",time[i].hour);
printf("time%dの分を入力\n",i+1)
  scanf("%d",time[i].minute);
printf("time%dの秒を入力\n",i+1);
scanf("%d",time[i].second);
}
time3.second = time1.second + time2.second;
if( time3.second >= 60 ){
time3.second=-60;
/* time3.second = time3.second - 60; */
time3.minute=1;
}else{
time3.minute=0;
}
time3.minute = time3.minute + time1.minute + time2.minute;
if( time3.minute >= 60 ){
time3.minute=-60;
/* time3.minute = time3.minute - 60; */
time3.hour=1;
}else{
time3.hour=0;
}
time3.hour= time3.hour+ time1.hour+ time2.hour;
return 0;
}

A 回答 (3件)

> 構造体Timeを定義し、この構造体型を持つ変数time1,time2,time3を用意します。

この変数time1,time2に時間、分、秒のデータを入力し,

その仕様でしたら、構造体の配列 time[3] は不要ですね。
scanf() のところを修正して、time1 と time2 に入力してください。
    • good
    • 0
この回答へのお礼

やはり、time[3]とtime1,time2,time3の両方を使っていたのがいけなかったようです。

なんとか、解決できそうです。
ありがとうございました。

お礼日時:2007/12/18 04:39

1. 入力した値がtime[n]に入っているか確認しましたか?


2. time[n]に入力したのに、計算はtime1,time2,time3を使っているのはなぜですか?
    • good
    • 0
この回答へのお礼

time[1],time[2],time[3]にそろえて考えてみます。

投稿ありがとうございました。

お礼日時:2007/12/18 04:31

「どういう動きをさせたいのだけれど」「実際はどうなってしまうか」を


説明してください。

scanf()で入力した値を後の処理で全く使っていないことが
原因だとは思いますが、ご本人からの説明を待ちます。

この回答への補足

scanfで2時間10分13秒と3時間9分24秒の2つの数値を読み取り、それを足し合わせて5時間19分37秒を表示させたいのです。

構造体Timeを定義し、この構造体型を持つ変数time1,time2,time3を用意します。この変数time1,time2に時間、分、秒のデータを入力し,
合計値をtime3の各メンバに代入し、time3に含まれる、時間、分、秒を表示。
(分、秒の表示は0から59の数値で行う)
(時間はint hour
分は int minute
秒は int second)

補足日時:2007/12/16 02:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!