ISBN码

Description

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:

首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod
11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158
mod 11的结果4作为识别码。

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。

Input

输入文件只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

Output

输出文件共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。

Sample Input

0-670-82162-0

Sample Output

0-670-82162-4

#include<stdio.h>
int main()
{int a[9],sum=0;char last;scanf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);scanf("-%c",&last);for(int i=1;i<=9;i++)//求题目要求的总和{sum+=a[i-1]*i;}sum%=11;//mod11if(sum<10&&sum==last-48)//如果sum不是10并且等于题目给的最后一个数(last-48即为ascii码所对应的数字){printf("Right");return 0;}if(sum==10&&last=='X')//如果sum=10并且last==X{printf("Right");return 0;}if(sum==10){last=='X';}else{last=sum+48;}printf("%d-%d%d%d-%d%d%d%d%d-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],last);return 0;
}

C语言学习 ISBN码相关推荐

  1. C语言学习-原码、反码、补码(内含计算工具)

    C语言学习-原码.反码.补码 原码反码补码计算工具:[一个工具箱](http://www.atoolbox.net/Tool.php?Id=952) 有符号位数据存储 原码.反码.补码 原码 反码 补 ...

  2. c语言源码转流程图工具_C语言学习路线 (详细)

    C语言怎么学习,这是很多人留言问的问题,其实这个问题没有正确答案,一千个读者有一千个哈姆雷特,每个人学习方法和学习习惯都不一样,这里我就结合一些人的学习经验和自己的学习经历,给出我认为的比较合理的C语 ...

  3. 为什么c语言运行了是cmd,为什么C语言的程式码执行都在命令提示符进行?而且学习的基本都是数学问题,跟开发软体有什么关系?...

    为什么C语言的程式码执行都在命令提示符进行?而且学习的基本都是数学问题,跟开发软体有什么关系?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们 ...

  4. C语言学习教程:搬山游戏开发源码

    C语言学习教程:搬山游戏开发源码 #include<stdio.h> void main() {int n,k,x,y,cc,pc,g;clrscr();puts("****** ...

  5. 计算机毕业设计(附源码)python语言学习系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  6. (附源码)计算机毕业设计SSM语言学习系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. C语言学习笔记06-占位符格式、C基本类型及逃逸字符一些细节(附介绍BCD码)

    主要整理有关占位符格式与逃逸字符的一些细节 朋友们,看栗子--"BCD解码" (文末附BCD码介绍) 一个BCD数的十六进制是0x12(对应二进制表示:0001 0010),它表达 ...

  8. C语言学习5:机器数、真值、原码、反码和补码详解

    目录 1.前言 2.机器数 3.真值 4.原码 5.反码 6.补码 1.前言 上篇博文中,笔者介绍了计算机存储器存储容量大小的常用单位 .在未来,我们还会接触到各种各样的数据类型,并且这些数据在运算的 ...

  9. C语言学习:剪切板UNICODE码使用

    前言 本文程序是基于作者另一篇文章的程序基础上做修改,链接:(17条消息) C语言学习:除去剪切板内容的换行与回车_余宁C的博客-CSDN博客 由于剪切板中普通的text数据是8位的,不能支持一些字符 ...

  10. C语言学习教程:超级玛丽游戏开发源码分享

    C语言学习教程:超级玛丽游戏开发源码分享 这里推荐一下我建的C/C++语言学习交流秋秋裙,秋秋搜索群名称:小凯C/C++语言学习之家,裙里有不错的学习教程,从入门到项目实战.学习开发用到的开发工具,专 ...

最新文章

  1. 《彩虹坠入》如何用视觉元素增加游戏剧情表现力?
  2. 学javascript 必须了解 typeof 和 instanceof
  3. SQL Server经典查询语句练习题及答案
  4. linux移植简介[MS2]
  5. overleaf 改为XeLatex怎么操作
  6. 关于微信旧版本扫码登陆,旧版的登陆限制的一些经验
  7. 【深度强化学习】A3C
  8. 耳机插在的电脑上没有声音
  9. Unity3D中常用的物理学公式
  10. CSS 动画 animation
  11. 任务栏文件资源管理器打开特别卡
  12. Win 10.0.16299.15 禁用五笔输入法Shift切换中英文
  13. JAVA语言程序设计 第十六章 (16.10、16.11、16.12、16.13、16.14、16.15、16.16)
  14. 分门别类刷leetcode——链表 1
  15. onethink钩子
  16. 数据分析综述:一文带你详细了解自动驾驶技术
  17. 将ResNet分类器做成一个小网站界面
  18. 100天精通Python(基础篇)——第7天:高级变量类型复习
  19. 空气质量预测 灰色预测模型 模糊综合评价模型
  20. PM-K65 光学传感器 PM-65系列,AFEM-8245前端模块

热门文章

  1. 使用键盘设置桌面计算机图标的显示不出来,显示桌面,小编教你显示桌面图标不见了如何恢复...
  2. java duplicate key_java.lang.IllegalStateException: Duplicate key 1
  3. Python使用scipy简单求解线性规划问题
  4. 没Switch也能玩有氧拳击 咕咚智能运动手表F4全面评测
  5. 注塑机服务器显示e011,一种注塑机工业4.0联网系统以及监控方法
  6. SRM 459 500p hust1080 NumberPyramids
  7. UVALive 7178 Irrational Roots 多项式的根
  8. Windows 系统封装
  9. 程序员学炒股(3) 个股和大盘的关系之二
  10. CWnd与CDialog-DoModal与ShowWindow区别