问关于 c++ 开关和 if 程序
Q about with c++ switch and if program
嗨,我试图做一个从用户那里获取日期的程序,检查日期是否正确并返回带有月份的日期作为单词如果日期不正确,程序应退出但是当我输入数字时,它什么都没有请帮助我
{
int day,month,year;
cout<<"enter dayn";
cin>>day;
cout<<"enter monthn";
cin>>month;
cout<<"enter yearn";
cin>>year;
if ( ( (((month==1)|| (month==3)|| (month==5)|| (month==7)|| (month==8)|| (month==10)|| (month==12) )&&((day<32)&&(day>0))) || (((month==4)|| (month==6)|| (month==9)|| (month==11))&&((day<31)&&(day>0))) || ((month==2)&&((day<29)&&(day>0))) ) && ((year>-1)&&(year<3001)) )
{
switch(month)
{
case 1:
cout<<day<<"/"<<"january/"<<year;
break;
case 2:
cout<<day<<"/"<<"febuary/"<<year;
break;
case 3:
cout<<day<<"/"<<"march/"<<year;
break;
case 4:
cout<<day<<"/"<<"april/"<<year;
break;
case 5:
cout<<day<<"/"<<"may/"<<year;
break;
case 6:
cout<<day<<"/"<<"june/"<<year;
break;
case 7:
cout<<day<<"/"<<"july/"<<year;
break;
case 8:
cout<<day<<"/"<<"August/"<<year;
break;
case 9:
cout<<day<<"/"<<"September/"<<year;
break;
case 10:
cout<<day<<"/"<<"October/"<<year;
break;
case 11:
cout<<day<<"/"<<"November/"<<year;
break;
case 12:
cout<<day<<"/"<<"December/"<<year;
break;
default;
cout<<"not correct";
}
}
else
{
cout<<"false";
}
return 0;
};
它甚至不应该编译 - "default;"应该是"default:"。
如果这是固定的,并且被适当的 #include 包围,使用命名空间 std (yuk) 和 int main(int argc, char **argv),那么它确实编译并输出一些东西。
不过,也有一些错误。
C:>D:ProjectstempDebugtemp.exe
enter day
30
enter month
12
enter year
2000
30/December/2000not correct
C:>
您可以使用数组来动态和可理解的代码
int day,month,year;
std::string months [] = { "january" , "febuary" , "march" , "april" , "may" , "june" , "july" , "August" , "September" , "October" , "November" , "December" } ;
int total_day [12];
total_day [0] = 31;
total_day[1] = 29;
total_day[2] = 31;
total_day[3] = 30;
total_day[4] = 31;
total_day[5] = 30;
total_day[6] = 31;
total_day[7] = 31;
total_day[8] = 30;
total_day[9] = 31;
total_day[10] = 30;
total_day[11] = 31;
std::cout<<"enter day :n";
std::cin>>day;
std::cout<<"enter month :n";
std::cin>>month;
std::cout<<"enter year :n";
std::cin>>year;
if ( (month > 0 && month <= 12) && (day > 0 && day <= total_day[month-1]) && (year > -1 && year < 3001))
{
std::cout << day << "/"<< months[month-1] << "/" <<year;
}
else
{
std::cout << "Wrong Date";
}
相关文章:
- 为什么程序会错过"if"运算符?
- 当if语句告诉程序返回0时,我的程序不会退出
- 我的fahrenheit-celcius程序会忽略我的if-else语句,并在每次运行该程序时将值更改为0
- 否则在新程序中没有以前的 if 错误
- if/else 循环:C++程序:不会显示最终提示/最终循环
- C 为什么我的程序循环和"if-statements"不起作用?
- SDL 应用程序错误:“if”之前应为非限定 id
- 主要使用 if 和 else 语句的程序未正确执行
- 输入后,我的程序似乎跳过了第一个IF语句,直接转到ELSE
- C++:添加逻辑上正确的 if 语句会使我的程序崩溃
- 当我使用if语句时,为什么该程序会给我不同的结果
- 程序仅执行第一个 IF 语句
- 无法弄清楚为什么我的程序在条件不为真时执行 if 语句(数组)
- c++程序是否可以在if/else语句中包含switch语句
- 我的程序C++找到三角形的类型,我的if-else语句遇到问题
- 如何让程序在打印出 while/if 语句之前请求输入字符串"course"
- C++-映射迭代器中的if语句导致程序崩溃的原因
- 是否可以在程序中使用 std::string 作为 if else 语句的一部分
- C++如何使用文本输入和If语句打开应用程序
- 问关于 c++ 开关和 if 程序