本文主要是介绍c++编程题2——ISBN计算识别码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入描述:
为一个ASCII码字符串。内容为ISBN的前三段,以上面为例,就是0-670-82162
输出描述:
若判断输入为合法的字符串,则计算出识别码,
若不合法,则输出字符串“ERROR”
示例:
输入
0-670-82162
输出
0-670-82162-4
编程如下:
#include<stdio.h>
#include<string>
#include<iostream>
#include<sstream>
using namespace std;int main(void)
{cout << "输入字符串" << endl;string str;cin >> str;int str_len = 0;str_len =str.length();if(str_len != 11){cout << "ERROR" << endl;return 0;}int a[9];int j=0;for(int i=0; i<11; i++){if(i==1 || i == 5){if(str[i] != '-'){cout << "ERROR" << endl;return 0;}}if(i!=1 && i!=5){if(str[i]>='0' && str[i] <='9'){a[j]=str[i]-'0';j++;}else{cout << "ERROR" << endl;return 0;}} }int sum = 0;for(int i=0; i<9; i++){sum +=a[i]*(i+1);}int end = sum % 11;string c_end;if(end == 10){c_end = 'X';}else{stringstream stream; //声明一个stringstream变量 stream << end;stream >> c_end;}str +='-';str +=c_end;cout <<str << endl;getchar();getchar();return 0;
}
这篇关于c++编程题2——ISBN计算识别码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!