编写输入数字1-12的程序并输出相应的月份

Sta*_*yle -2 c++

我的程序假设提示用户输入数字1-12并输出相应的月份.好的我知道我错过了这个项目的一个非常重要的部分,但是我知道我正在努力弄清楚要使用什么.我是否需要一个包含所有月份名称的字符串?此外,我知道我需要在cout <<"月份"之后放置一些东西.<<必须要去的地方所以答案会打印出来,但我现在还不确定.我也认为我需要有int int = something但不确定它应该是1-12还是monthname.这是我正在编辑的程序,但现在它有一个调试错误,变量"month"正在使用而没有被初始化.那是什么意思?

#include <iostream>
#include <string>
using namespace std;
char chr;
int main()
{

int month;
cout<<"Enter a number from 1-12.";
if (month ==1)
    cout<<"January";
else if (month==2)
    cout<< "February";
else if (month==3)
    cout<<"March";
else if (month==4)
    cout<<"April";
else if (month==5)
    cout<<"May";
else if (month==6)
    cout<<"June";
else if (month==7)
    cout<<"July";
else if (month==8)
    cout<<"August";
else if (month==9)
    cout<<"September";
else if (month==10)
    cout<<"October";
else if (month==11)
    cout<<"November";
else if (month==12)
    cout<<"December";
else if (month>12)
    cout<<"Sorry I need a number from 1-12."<<endl;          
else if(month<=12) 
    cout<< "The month is "<<month;
cin>>chr;
return 0;
Run Code Online (Sandbox Code Playgroud)

}

Tim*_*RIM 8

你应该cin>>month; 在if语句之前使用.因为如果您不使用它,键盘的输入将永远不会分配给您的整数.

我还建议使用switch-case,尽可能避免使用if语句.

在您的情况下,字符串数组也适用,但开关盒更方便

您可以查看以下代码.我建议删除break语句然后运行代码删除默认语句并输入无效的inpu然后运行代码.它将帮助您了解switch-case的工作原理

#include <iostream>

using namespace std;

int main (){
    int month;
    cout<<"Enter month: ";
    cin>>month;

    switch(month){
    case 1:
        cout<<"Jan"<<endl;
        break;
    case 2:
        cout<<"Feb"<<endl;
        break;
    case 3:
        cout<<"Mar"<<endl;
        break;
    case 4:
        cout<<"Apr"<<endl;
        break;
    case 5:
        cout<<"May"<<endl;
        break;
    case 6:
        cout<<"Jun"<<endl;
        break;
    case 7:
        cout<<"Jul"<<endl;
        break;
    case 8:
        cout<<"Aug"<<endl;
        break;
    case 9:
        cout<<"Sep"<<endl;
        break;
    case 10:
        cout<<"Oct"<<endl;
        break;
    case 11:
        cout<<"Nov"<<endl;
        break;
    case 12:
        cout<<"Dec"<<endl;
        break;

    default: // default is for when you enter a number out of 1-12 range. for instance, 13
        cout<<"invalid input!"<<endl;
    }

    return (0);
}
Run Code Online (Sandbox Code Playgroud)