C语言编程题,不会呀

〖☆Matey☆〗 2021-05-04 10:23:52
每本书的封底都有一串号码,比如978-7-111-34081-2,它叫做"国际标准书号"(International Standard Book Number,缩写为ISBN)。它是全世界图书的编码,用来唯一代表一本书。目前ISBN是13位。从组成上看,13位的ISBN可以分为5个区: 第一区 EAN-UCC前缀 、第二区 组区号、第三区 出版者号、第四区 出版序号、第五区 校验码。 其中第二区 组区号从第4位数字开始。这部分表明这本书是哪个国家或地区出版的。0或1表示英语国家,2表示法语国家,3表示德语国家,4表示日本,5表示俄语国家,6表示伊朗,7表示中国大陆,89表示韩国,957和986表示台湾,962和988表示香港,99936表示不丹。 输入一个13位ISBN。输入格式:978-7-111-34081-2 输入之后,输出ISBN中所包含的出版地区的信息。 比如:组区号为7,则输出” China”。 这里我们最低要求识别的地区包括: 0 English Region 1 English Region 2 French Region 4 Japan 7 China 89 South Korea 957 Taiwan 986 Taiwan 962 Hong Kong 988 Hong Kong [输入样例] 978-7-111-34081-2 [输出样例] China [输入样例] 978-1-111-34081-2 [输出样例] English Region
...全文
2418 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzjhjxj 2021-05-04
  • 打赏
  • 举报
回复 2
修正楼上第5行,k=0定义多余,改为:
int i=4,c=0;
qzjhjxj 2021-05-04
  • 打赏
  • 举报
回复 5
供参考:
#include<stdio.h>

int main()
{
    int i=4,k=0,c=0;
    char s[18];
    scanf("%s",s);
    while(s[i]){
          if(s[i] == '-')break;
          c = c*10 + s[i]-'0';
          i++;
    }
    switch(c){
           case   0:
           case   1:printf("English Region\n");
                    break;
           case   2:printf("French Region\n");
                    break;
           case   4:printf("Japan\n");
                    break;
           case   7:printf("China\n");
                    break;
           case  89:printf("South Korea\n");
                    break;
           case 957:
           case 986:printf("Taiwan\n");
                    break;
           case 962:
           case 988:printf("Hong Kong\n");
                    break;
           default :printf("Bhutan\n");
                    break;
    }
    
    return 0;
}
欧阳pear 2022-10-09
  • 举报
回复
@qzjhjxj 大佬,能解释下while语句里什么意思吗?特别是c=c*10+s[i] -'0';这句
qzjhjxj 2022-10-09
  • 举报
回复 2
@欧阳pear 把第四位字符开始的数字字符转换为数值型的数据,比如输入的字符串是 ”789“,经过换算得到数值 789,s[i] = '7' , '7'-'0' = 7, c = c*10+7 = 7,s[i] = '8', '8'-'0' = 8, c = c*10+8 = 70+8 =78, s[i] = '9','9'-'0' = 9, c =c\*10+9 = 78*10+9 = 789。
qq_61825634 2022-10-20
  • 举报
回复
@qzjhjxj 6
2条回复

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧