编写c++代码,要求:ISBN13的校验码生产规则是:前12位数依次乘以1和3,然后求它们的和除以10的余数,最后用10减去这个余数,就得到了校验码。如果余数为0,则校验码为0。并且约定输入的前四部分的每位数字之间用空格隔开,输出的完整ISBN13编码的各个数字之间没有分隔符号。
时间: 2023-06-03 16:02:14 浏览: 128
好的,这是一个关于编写C代码的问题,我可以回答。根据你的要求,我可以编写以下C代码:
```
#include <stdio.h>
int main() {
int num[13];
int i, sum = 0, checkcode;
printf("请输入前12位数字:");
for (i = 0; i < 12; i++) {
scanf("%1d", &num[i]);
}
for (i = 0; i < 12; i++) {
if (i % 2 == 0) {
sum += num[i];
} else {
sum += num[i] * 3;
}
}
checkcode = 10 - (sum % 10);
if (checkcode == 10) {
checkcode = 0;
}
num[12] = checkcode;
printf("ISBN13编码为:");
for (i = 0; i < 13; i++) {
printf("%d", num[i]);
}
printf("\n");
return 0;
}
```
编译运行后,输入前12位数字,程序将输出完整的ISBN13编码。
相关问题
本关任务:根据输入的ISBN13前四部分和校验算法,生成完整的ISBN13代码并输出。 背景知识 ISBN13编码 ISBN13号在2007年正式启用每本书的ISBN13号由五个部分构成: 978(或979); 出版国家或语言代码; 出版社代码; 书代码; 校验码。 例如,《C++程序设计(第3版)》的ISBN13号是978-7-302-39348-1,其中1为校验码。 ISBN13的校验码生产规则是:前12位数依次乘以1和3,然后求它们的和除以10的余数,最后用10减去这个余数,就得到了校验码。如果余数为0,则校验码为0。 例如:C++程序设计(第3版)》的ISBN13编码前12位是978-7-302-39348 计算加权和S=9×1+7×3+8×1+7×3+3×1+0×3+2×1+3×3+9×1+3×3+4×1+8×3=119 S除以10的余数为9,所以其校验码为10−9=1。 详细情况参见百度百科的国际标准书号词条。 测试说明 平台会对你编写的代码进行测试,并且约定输入的前四部分的每位数字之间用空格隔开,输出的完整ISBN13编码的各个数字之间没有分隔符号。 测试输入: 9 7 8 7 3 0 2 2 1 8 9 7 预期输出: 9787302218975 开始你的任务吧,祝你成功!
我可以帮您生成完整的ISBN13代码。请提供ISBN13号前四部分的数字,每个数字之间用空格隔开。例如:9 7 8 7。
9 7 8 7的ISBN13编码前12位为:978-7。接下来,请提供第三位到第十二位的数字,这是出版社和书的编号。例如,如果您的书的编号是302-39348,那么这10位数字为:3 0 2 3 9 3 4 8。
根据校验算法,我会自动计算出校验码,然后输出完整的ISBN13代码。例如,如果您的书的校验码为1,那么完整的ISBN13代码为:9787302393481。请注意,输出的完整ISBN13编码的各个数字之间没有分隔符号。
10.—段代码输出结果如下,请编写C++代码实现: 12345 1234 123 12 1
以下是实现代码:
```c++
#include <iostream>
using namespace std;
int main() {
for (int i = 5; i >= 1; i--) { // 外层循环控制行数
for (int j = 1; j <= i; j++) { // 内层循环控制每行输出的数字
cout << j;
}
cout << endl; // 每行结束后换行
}
return 0;
}
```
输出结果为:
```
12345
1234
123
12
1
```