RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1183007
Accepted
A_Hatake
A_Hatake
Asked:2020-09-27 14:40:47 +0000 UTC2020-09-27 14:40:47 +0000 UTC 2020-09-27 14:40:47 +0000 UTC

C:按名称显示星期几

  • 772

文件的单行包含三个表示英文星期几的字母。需要显示一周中这一天的编号。文件中没有空格。第一个字母是大写,另外两个是小写。保证英文中星期几的名称以三个书面字母开头。这是我自己的代码,程序不输出任何东西。你会建议做什么/修复?

#include<stdio.h>
int main(){
    char c, d, e;
    scanf("%d %d %d", &c, &d, &e);
    
    if((c=='M')&&(d=='o')&&(e=='n'))
                printf("1");
              
    if((c=='T')&&(d=='u')&&(e=='e'))
                printf("2");
               
    if((c=='W')&&(d=='e')&&(e=='d'))
                printf("3");
               
    if((c=='T')&&(d=='h')&&(e=='u'))
                printf("4");
               
    if((c=='F')&&(d=='r')&&(e=='i'))
                printf("5");
               
    if((c=='S')&&(d=='a')&&(e=='t'))
                printf("6");
               
    if((c=='S')&&(d=='u')&&(e=='n'))
                printf("7");
}
c
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Harry
    2020-09-27T15:55:27Z2020-09-27T15:55:27Z

    好吧,因为

    保证英文星期几的名称以三个书面字母开头

    可惜没用。。。

    int day()
    {
        char nm[10];
        scanf("%s",nm);
        long long x = nm[0]+nm[1]+nm[2]-300;
        return (((((101047ll*x+694384ll)*x-19207693ll)*x-61935874ll)*x
                 +1060034136ll)*x-1218412800)*(2+x)/2058376320+1;
    
    }
    

    确保它工作...

    :)

    • 4
  2. Best Answer
    avp
    2020-09-27T20:09:48Z2020-09-27T20:09:48Z

    由于该任务实际上与字符串的分析有关,因此使用处理字符串的工具来解决它是最合乎逻辑的,对于 C 来说,这些工具主要位于头文件string.h中。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    int
    main (int ac, char *av[])
    {
      char str[10];
    
      if (!fgets(str, sizeof(str), stdin)) // прочтем строку файла
        return (perror("get line"), 1);
      str[3] = 0; // ограничимся первыми 3-мя символами
      
      const char *days = "MonTueWedThuFriSatSun";
      const char *p = strstr(days, str);   // найдем вхождение прочитанного дня в перечне всех дней недели
      int  n = p - days;   // перейдем от адресов к индексу символов в строке
    
      if (p && n % 3 == 0) // проверим, введенные данные это в самом деле первые 3 буквы дня?
        printf("%d\n", n / 3 + 1);
      else
        printf("`%s` is not a day\n", str);
      
      return puts("End") == EOF;
    }
    
    • 3
  3. noname2019
    2020-09-27T15:15:14Z2020-09-27T15:15:14Z

    试试这个:(正如wololo在评论中指出的那样,您只需要更改接收数据的格式)好吧,我自己添加了一个检查。

    #include <stdio.h>
    int main(){
       char c, d, e;
       scanf("%c %c %c", &c, &d, &e); 
       if((c=='M')&&(d=='o')&&(e=='n'))
           printf("1\n");
       else if((c=='T')&&(d=='u')&&(e=='e'))
           printf("2\n");
       else if((c=='W')&&(d=='e')&&(e=='d'))
           printf("3\n");
       else if((c=='T')&&(d=='h')&&(e=='u'))
           printf("4\n");
       else if((c=='F')&&(d=='r')&&(e=='i'))
           printf("5\n");
       else if((c=='S')&&(d=='a')&&(e=='t'))
           printf("6\n");          
       else if((c=='S')&&(d=='u')&&(e=='n'))
           printf("7\n");
       else 
           printf("day not found\n");
    }
    

    还有一个时刻,在西方,大部分星期天不是一周的第七天,而是第一天)

    • 1

相关问题

  • free 出于某种原因不会从内存中删除数组

  • 请帮助代码

  • 为什么 masm 对字符串或文本文字太长发誓,为什么在结构中设置 db 或 dw?

  • 如何将数字拆分为位并将其写入 C 中的数组?

  • 如何以给定的角度移动物体?

  • 解决“子集和问题”的时效算法

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5