EAN13码 校验位 C++代码
时间: 2023-12-14 08:04:13 浏览: 28
以下是校验EAN13码的C代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char ean13[13];
int i, sum = 0, check_digit;
printf("请输入EAN13码:");
scanf("%s", ean13);
// 计算校验位
for (i = 0; i < 12; i += 2) {
sum += ean13[i] - '0';
}
for (i = 1; i < 12; i += 2) {
sum += (ean13[i] - '0') * 3;
}
check_digit = (10 - sum % 10) % 10;
// 验证校验位
if (check_digit == ean13[12] - '0') {
printf("EAN13码校验正确。\n");
} else {
printf("EAN13码校验错误。\n");
}
return 0;
}
```
该代码要求用户输入一个13位的EAN13码,然后计算校验位并验证校验位是否正确。校验位的计算方法是将奇数位数字相加,再将偶数位数字乘以3后相加,最后对10取余数,再用10减去余数得到校验位。
相关问题
EAN13码 校验位 Cpp 代码
以下是一个计算EAN13码校验位的Cpp代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string code;
cout << "请输入12位EAN13码:" << endl;
cin >> code;
if (code.length() != 12) {
cout << "EAN13码必须为12位!" << endl;
return 0;
}
int sum = 0;
for (int i = 0; i < code.length(); i++) {
int num = code[i] - '0';
if (i % 2 == 0) {
sum += num * 1;
} else {
sum += num * 3;
}
}
int check_bit = (10 - (sum % 10)) % 10;
cout << "校验位为:" << check_bit << endl;
cout << "完整的EAN13码为:" << code << check_bit << endl;
return 0;
}
```
该程序会要求用户输入12位的EAN13码,然后计算出校验位,并输出完整的EAN13码。程序的计算方法遵循EAN13码的规则,即将偶数位的数字乘以1,奇数位的数字乘以3,然后将所有数字相加并取10的余数,最后再用10减去余数得到校验位。
EAN13校验码算法java代码
EAN-13校验码算法是一种用于验证国际商品编码的算法。下面是一个简单的Java代码示例,用于计算EAN-13校验码:
```java
public class EAN13Checksum {
public static void main(String[] args) {
String barcode = "123456789012"; // 输入EAN-13条形码(不包含校验码)
int checksum = calculateChecksum(barcode);
System.out.println("校验码:" + checksum);
}
public static int calculateChecksum(String barcode) {
int sum = 0;
for (int i = 0; i < barcode.length(); i++) {
int digit = Character.getNumericValue(barcode.charAt(i));
if (i % 2 == 0) {
sum += digit;
} else {
sum += digit * 3;
}
}
int checksum = (10 - (sum % 10)) % 10;
return checksum;
}
}
```
请注意,上述代码中的`barcode`变量是EAN-13条形码的前12位数字,不包含校验码。运行代码后,将输出计算得到的校验码。