今学校で構造体の勉強をしていてそれについての課題をやっているのですが、
年、月、日、最低気温、最高気温を5日分入力して、
最低気温がもっとも高かった日のデータを表示するという課題です。
それについて質問させて下さい。
プログラムを組んで動かしているのですが、なぜか最低気温の高い日のデータだけでなく
入力したデータすべてが表示されてしまいます。
以下が自分の書いたソースコードですが、どこが間違っているのかご指摘頂けないでしょうか。
#include<iostream.h>
#include<iomanip.h>
const int days = 5 ; //考える期間
struct daydate {
int year ; //年
int month ; //月
int day ; //日
double most ; //最高気温
double least; //最低気温
} ;
main(){
cout << "入力された年月日の最高気温、最低気温から、最も最低気温が高いものを表示する\n" << endl ;
daydate date[days] ; //構造体の変数宣言
int result ; //結果の構造体を指定する
//日付、最高気温、最低気温の入力
for(int i = 0 ; i < days ; i++){ //
cout << "年 = " ;
cin >> date[i].year ;
cout << "月 = " ;
cin >> date[i].month ;
cout << "日 = " ;
cin >> date[i].day ;
cout << "最高気温 = " ;
cin >> date[i].most ;
cout << "最低気温 = " ;
cin >> date[i].least ;
cout << endl ;
}
//最低気温の比較
for(int i = 0 ; i < days-1 ; i++){
for(int t = 0 ; t < days-1 ; t++){
if(date[t].least < date[t+1].least){
daydate swap = date[t] ;
date[t] = date[t+1] ;
date[t+1] = swap ;
}else if(date[t].least == date[t+1].least){
if(date[t].most < date[t+1].most){
daydate temp = date[t] ;
date[t] = date[t+1] ;
date[t+1] = temp ;
}
}
}
}
for(int j=0 ; j < days ; j++){
cout << date[j].year << "年 "
<< date[j].month << "月 "
<< date[j].day << "日 " << endl
<< "最高気温 " << date[j].most << "℃"
<< " 最低気温 " << date[j].least << "℃" << endl << endl ;
}
}