中易网

C++编程 输入数字转换成对应的时间

答案:3  悬赏:50  
解决时间 2021-02-02 09:51
我的代码其中分钟十位输不出来 求大神看看哪里错了 #include<iostream> #include<string> using namespace std; int trans(int hours, int min, string &day, string &ho, string &minu1, string&minu2) { int a; a = hours % 12; switch (a) { case 0: if (hours == 0) day = "Midnight"; else day = "Noon"; ho = ""; break; case 1: if (hours == 1) day = " AM"; else day = " PM"; ho = "One"; break; case 2: if (hours == 2) day = " AM"; else day = " PM"; ho = "Two"; break; case 3: if (hours == 3) day = " AM"; else day = " PM"; ho = "Three"; break; case 4: if (hours == 4) day = " AM"; else day = " PM"; ho = "Four"; break; case 5: if (hours == 5) day = " AM"; else day = " PM"; ho = "Five"; break; case 6: if (hours == 6) day = " AM"; else day = " PM"; ho = "Six"; break; case 7: if (hours == 7) day = " AM"; else day = " PM"; ho = "Seven"; break; case 8: if (hours == 8) day = " AM"; else day = " PM"; ho = "Eight"; break; case 9: if (hours == 9) day = " AM"; else day = " PM"; ho = "Nine"; break; case 10: if (hours == 10) day = " AM"; else day = " PM"; ho = "Ten"; break; case 11: if (hours == 11) day = " AM"; else day = " PM"; ho = "Eleven"; break; } int b; b = min % 10; switch (b) { case 1:if (min != 11) minu2 = " one"; else minu2 = " eleven"; break; case 2:if (min != 12) minu2 = " two"; else minu2 = " twelve"; break; case 3:if (min != 13) minu2 = " three"; else minu2 = " thirteen"; break; case 4:if (min != 14) minu2 = " four"; else minu2 = " fourteen"; break; case 5:if (min != 15) minu2 = " five"; else minu2 = " fifteen"; break; case 6:if (min != 16) minu2 = " six"; else minu2 = " sixteen"; break; case 7:if (min != 17) minu2 = " seven"; else minu2 = " seventeen"; break; case 8:if (min != 18) minu2 = " eight"; else minu2 = " eighteen"; break; case 9:if (min != 19) minu2 = " nine"; else minu2 = " nineteen"; break; case 0: minu2 = ""; break; } int c; c = min /10; switch (c) { case 0:minu1 = ""; break; case 1:minu1 = ""; break; case 2:minu1 == " twenty"; break; case 3:minu1 == " thirty"; break; case 4:minu1 == " forty"; break; case 5:minu1 == " fifty"; break; case 6:minu1 == " sixty"; break; default:cout << "error time"; } return 0; } void main() { int a, b,c; c = 1; cout << "Please input the time" << endl; cin >> a >> b; while (c) { string day, ho, minu1, minu2; trans(a, b, day, ho, minu1, minu2); cout << ho << minu1 << minu2 << day<<endl; cin >> a >> b; } system("pause"); }
最佳答案
调试了一下代码,这一段代码有问题:把赋值"="用成“==”了,赋值变成了比较导致分钟的十位没有值,把“==”改成“=“可解决这一问题。如下注释。
switch (c)
{
case 0:minu1 = "";
break;
case 1:minu1 = "";
break;
//case 2:minu1 == " twenty";
case 2:minu1 = " twenty";
break;
//case 3:minu1 == " thirty";
case 3:minu1 = " thirty";
break;
//case 4:minu1 == " forty";
case 4:minu1 = " forty";
break;
//case 5:minu1 == " fifty";
case 5:minu1 = " fifty";
break;
//case 6:minu1 == " sixty";
case 6:minu1 = " sixty";
break;
default:cout << "error time";
}
供参考。
全部回答
首先说,这代码写的太冗余了,最重要的是,你这代码里两个表示分钟的是什么意思啊 #include<iostream> #include<string> using namespace std; void trans(int hours, int min, string &day, string &ho, string &minu1, string &minu2) { if(hours == 0) day = "Midnight"; else if(hours>12 ) day = " PM"; else day = " AM"; string num[]={"" ,"One", "Two" ,"Three", "Four", "Five","Six"," Seven","Eight" ,"Nine" , "Ten", "Eleven", "Twelve", " Thirteen"," Fourteen"," Fifteen"," Sixteen"," Seventeen","Eighteen"," Nineteen", "Twenty", " Thirty"," Forty"," Fifty"," Sixty"}; ho=num[hours]; if(min<20) { minu1=""; minu2=num[min]; } else { minu1=num[min/10+18]; minu2=num[min%10]; } } void main() { int a, b,c; c = 1; cout << "Please input the time" << endl; cin >> a >> b; while (c) { string day, ho, minu1, minu2; trans(a, b, day, ho, minu1, minu2); cout << ho << minu1 << minu2 << day<<endl; cin >> a >> b; } system("pause"); }
调试了一下代码,这一段代码有问题:把赋值"="用成“==”了,赋值变成了比较导致分钟的十位没有值,把“==”改成“=“可解决这一问题。如下注释。 switch (c) { case 0:minu1 = ""; break; case 1:minu1 = ""; break; //case 2:minu1 == " twenty"; case 2:minu1 = " twenty"; break; //case 3:minu1 == " thirty"; case 3:minu1 = " thirty"; break; //case 4:minu1 == " forty"; case 4:minu1 = " forty"; break; //case 5:minu1 == " fifty"; case 5:minu1 = " fifty"; break; //case 6:minu1 == " sixty"; case 6:minu1 = " sixty"; break; default:cout << "error time"; } 供参考。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
微胖女生适合的衣服
关于刺客信条3的故事
天歌羽绒服蓬溪专卖店这个地址在什么地方,我
元昌办公文化用品地址在哪,我要去那里办事
打lol的时候打字就闪退,是什么原因啊?
伊宁市公安局汉宾派出所地址在什么地方,想过
中国平安财产保险有限公司宿豫支公司客户服务
北票市华溢酒业有限公司这个地址在什么地方,
一个男生说你矫情,你还要他吗
野味王烧烤怎么去啊,有知道地址的么
老师把学生的手机摔了,还不赔偿,也不道歉。
盛世舒苑4号门在什么地方啊,我要过去处理事
枣阳市鑫港印务有限公司地址有知道的么?有点
我的电脑怎么了?开机半天也进不了登陆界面这
魔兽世界 工程有什么用?
推荐资讯
谁帮我看看我属于什么脸型,应该修什么样的眉
在车祸中我断掉一只脚的半只脚应该几级伤残,
某天早晨小明和他爸爸去学校操场跑步,小明跑
我南京工业大学的大四学生,现在学位课绩点不
晃眼的反义词
电是怎样制造的
求凤凰对应龙虎对联
中华联合财产保险股份有限公司株洲市荷塘区支
如何营造团队授权的气氛 优秀团队具有的特征
嘉丰宾馆东门在哪里啊,我有事要去这个地方
游邵伯船闸作文!!!!!!!!
怀疑自己家的沙发甲醛苯超标,有什么办法可以
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?