输入英文数字one到seven判断星期几

就单单输入阿拉伯数字我用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;
    }
} 
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632