どこが間違っているのか..

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ダイキ

どこが間違っているのか..

#1

投稿記事 by ダイキ » 8年前

上のような型があり、
年月日を設定して、不正な日時の場合は1を返し、
正しい日時の場合は0を返し、次の日を表示するプログラムを作りたいので、
下のようなプログラムを作ったのですが、
上手く動作しないのですが、どこがだめなのでしょうか?

コード:

#include <iostream>
using namespace std;

class Date {

private:
	int year;
	int month;
	int day;
public:

	int set(int y, int m, int d) {}

	void get() {}


	void next() {}

};


int main()
{
	Date d1;
	int yy, mm, dd, y, m, d;
	cin >> yy >> mm >> dd;

	if (d1.set(yy, mm, dd) == 0) {
		d1.get(y, m, d);
		cout << yy << "年" << mm << "月" << dd << "日が設定されました" << endl;

		d1.next();
		d1.get(yy, mm, dd);
		cout << "次の日は" << yy << "年" << mm << "月" << dd << "日です" << endl;
	}
	else {
		cout << "正しく設定されていません" << endl;
	}
	return 0;
}




コード:

#include <iostream>
using namespace std;
 
class Date {
 
private:
    int year;
    int month;
    int day;
public:
 
    int set(int y, int m, int d) {
 
        if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12 ) {
            if(d<=31&&d>=1){
			 year=y;month=m;day=d; 
			return 0;
		}
            else return 1;
        }
 
        else if (m == 2) {
            if(d<=28&&d>=1) {
			year=y;month=m;day=d; 
			return 0;
			}
            else return 1;
       }
 
        else if (m == 4 || m == 6 || m == 9 || m == 11){
            if(d<=30&&d>=1){
			 year=y;month=m;day=d; 
			return 0;
			}
            else return 1;
        }
        
        
        
 
}
 
    void get(int& y,int& m,int& d){
 		year=y;month=m;day=d;
} 
 
 
    void next() {
        if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 )&& day== 31) {
            month++;
            day= 1;
        }
        else if (month == 12 && day == 31) {
            year++;
            month = 1;
            day = 1;
        }
        else if (month == 2 && day == 28) {
            month++;
            day = 1;
        }
 
        else if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 30) {
            month++;
            day = 1;
        }
        
        
        else{
        month++;
        day++;
        }
 
 
    }
 
 
};
 
 
int main()
{
    Date d1;
    int yy, mm, dd, y, m, d;
    cin >> yy >> mm >> dd;
 
    if (d1.set(yy, mm, dd) == 0) {
        d1.get(y, m, d);
        cout << yy << "年" << mm << "月" << dd << "日が設定されました" << endl;
 
        d1.next();
        d1.get(yy, mm, dd);
        cout << "次の日は" << yy << "年" << mm << "月" << dd << "日です" << endl;
    }
    else {
        cout << "正しく設定されていません" << endl;
    }
    return 0;
}


返信

“C言語何でも質問掲示板” へ戻る