早教吧作业答案频道 -->其他-->
C语言题,急!可以适量的用点C++问题描述:每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号
题目详情
C语言题,急!可以适量的用点C++
问题描述:
每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号码为合理的号码,否则不合理。如字符串“0201103311”就是一个合理的ISBN号码,因为
10*0 + 9*2 + 8*0 + 7*1 + 6*1 + 5*0 + 4*3 + 3*3 + 2*1 + 1*1 = 55是11的倍数。而在实际应用中,可以在最后一个字符处使用字符X来表示十进制数10。如“156881111X”也是一个合理的ISBN号码。下面输入一些ISBN号码,其中有一个字符没有给出,请你计算出这个数字。
输入格式:
第一行一个正整数t(≤100),表示数据组数,接下来t行,每行一个长度为10的字符串,仅含有0~1、X和?,其中“?”表示对应位置上的数字没有给出。
输出格式:
对应每组数据,计算出对应的“?”的值。如果没有任何一个符号使之合理,则输出-1。
样例输入
2
15688?111X
156881111?
样例输出
1
X
问题描述:
每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号码为合理的号码,否则不合理。如字符串“0201103311”就是一个合理的ISBN号码,因为
10*0 + 9*2 + 8*0 + 7*1 + 6*1 + 5*0 + 4*3 + 3*3 + 2*1 + 1*1 = 55是11的倍数。而在实际应用中,可以在最后一个字符处使用字符X来表示十进制数10。如“156881111X”也是一个合理的ISBN号码。下面输入一些ISBN号码,其中有一个字符没有给出,请你计算出这个数字。
输入格式:
第一行一个正整数t(≤100),表示数据组数,接下来t行,每行一个长度为10的字符串,仅含有0~1、X和?,其中“?”表示对应位置上的数字没有给出。
输出格式:
对应每组数据,计算出对应的“?”的值。如果没有任何一个符号使之合理,则输出-1。
样例输入
2
15688?111X
156881111?
样例输出
1
X
▼优质解答
答案和解析
#include
int main()
{
\x09char a[10] = "15688?111X";
\x09int temp = 0;
\x09int index;
\x09int i;
\x09for(i=0;i<10;i++)
\x09{
\x09\x09if(a[i]=='X')
\x09\x09\x09a[i]=':';
\x09\x09else if(a[i]=='?')
\x09\x09{
\x09\x09\x09a[i]='0';
\x09\x09\x09index=i;
\x09\x09}
\x09\x09temp = temp + (a[i]-48)*(10-i);
\x09printf("temp = %d",temp);
\x09}
\x09printf("index = %d",index);
\x09for(i=0;i<=10;i++)
\x09{
\x09\x09temp = temp + i*(10-index);
\x09\x09if(temp%11==0)
\x09\x09{
\x09\x09\x09if(i==10)
\x09\x09\x09\x09printf("X");
\x09\x09\x09
\x09\x09\x09printf("%d",i);
\x09\x09\x09break;
\x09\x09}
\x09\x09else
\x09\x09\x09temp = temp - i*(10-temp);
\x09\x09
\x09\x09printf("temp = %d",temp);\x09
\x09}
\x09return 0;
}
char a里面是字符,所以要转化为ascii~~~
int main()
{
\x09char a[10] = "15688?111X";
\x09int temp = 0;
\x09int index;
\x09int i;
\x09for(i=0;i<10;i++)
\x09{
\x09\x09if(a[i]=='X')
\x09\x09\x09a[i]=':';
\x09\x09else if(a[i]=='?')
\x09\x09{
\x09\x09\x09a[i]='0';
\x09\x09\x09index=i;
\x09\x09}
\x09\x09temp = temp + (a[i]-48)*(10-i);
\x09printf("temp = %d",temp);
\x09}
\x09printf("index = %d",index);
\x09for(i=0;i<=10;i++)
\x09{
\x09\x09temp = temp + i*(10-index);
\x09\x09if(temp%11==0)
\x09\x09{
\x09\x09\x09if(i==10)
\x09\x09\x09\x09printf("X");
\x09\x09\x09
\x09\x09\x09printf("%d",i);
\x09\x09\x09break;
\x09\x09}
\x09\x09else
\x09\x09\x09temp = temp - i*(10-temp);
\x09\x09
\x09\x09printf("temp = %d",temp);\x09
\x09}
\x09return 0;
}
char a里面是字符,所以要转化为ascii~~~
看了C语言题,急!可以适量的用点C...的网友还看了以下:
求解析~~~~~~~~~~(22)以下不构成无限循环的语句或者语句组是A)n=0;B)n=0;do 2020-06-15 …
选出下列各组词语哪组读音完全正确的一组。[]A.橄榄(gǎnlǎn)绣满(xiùmiǎn)赤褐色( 2020-06-16 …
(2014•江西)随机将1,2,…,2n(n∈N*,n≥2)这2n个连续正整数分成A、B两组,每组 2020-07-09 …
下列词语中划线的字,注音全都正确的一组是A.觊觎(jì)颀长(qí)蒙骗(méng)时乖运蹇(ji 2020-07-23 …
下列词语中划线的字,注音全都正确的一组是A.觊觎(jì)颀长(qí)蒙骗(méng)时乖运蹇(ji 2020-07-23 …
C语言组个平方数若一个数N能表示成某个自然数的平方的形式,则称N为完全平方数。对于给定的整数K,我 2020-07-31 …
随机将1,2,…,2n(n∈N*,n≥2)这2n个连续正整数分成A,B两组,每组n个数,A组最小数 2020-08-02 …
有n个数1,2,3,4,…,2n-1,2n(n为正整数),任意分成两组(每组n个),将一组按由小到大 2020-11-06 …
YLE七年级第二学期英语(《N·X版英语综合技能测试》编写组编)(赠阅)答案如题,七年级英语(《N· 2020-12-09 …
下列各组词语中加点的字,读音完全正确的一项是哺育(bǔ)亘古(gèng)孝悌(dì)髀肉复生(bì) 2021-01-14 …