就单单输入阿拉伯数字我用Switch语句和for语句就可以了 偏偏出个题目要英文数字(one two three four five six seven:)对应求星期几
用Switch或者for那种
做个数组来存储,然后用序号做switch的判定就可以了。
代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char mm[][20]={"one","two", "three", "four" ,"five", "six", "seven"};
int i;
char buf[20];
scanf("%s",buf);
for (i=0;i<7;i++)
{
if(strcmp(mm[i],buf)==0)
break;
}
switch(i)
{
case 0:
printf("星期一\n");break;
case 1:
printf("星期二\n");break;
case 2:
printf("星期三\n");break;
case 3:
printf("星期四\n");break;
case 4:
printf("星期五\n");break;
case 5:
printf("星期六\n");break;
case 6:
printf("星期日\n");break;
default:
printf("输入错误\n");break;
}
return 0;
}
星期几和one,two...有啥关系?
如果输入的不是阿拉伯数字,而是对应的英文,那无非你再前置一个函数,将英文转换成阿拉伯数字啊
比如定义一个数组,char [10][20] = {“zero","one","two",....};
然后对字符串进行比较,相同的字符串的序号就是对应的数字
int getDayNumFromString(const std::string& str)
{
if("one" == str)
{
return 1;
}
else if("two" == str)
{
return 2;
}
else if("three" == str)
{
return 3;
}
else if("four" == str)
{
return 4;
}
else if("five" == str)
{
return 5;
}
else if("six" == str)
{
return 6;
}
else if("seven" == str)
{
return 7;
}
else
{
return -1;
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!