为什么把字符数组开大一点就可以通过了?求解
查看原帖
为什么把字符数组开大一点就可以通过了?求解
838474
3years楼主2022/12/22 14:15

字符数组刚好是13时

#include<iostream>
//#include<cstdio>
using namespace std;
int main()
{
	char isbn[13]; //字符数组在这里
	scanf("%s",isbn);
	int sum=0,b=1;
	for(int i=0;i<12;i++)
	{
		if(isbn[i]-48>=0&&isbn[i]-48<=9)
		{
			sum+=(isbn[i]-48)*b;
			b++;
		}
	} 
	if(sum%11==isbn[12]-48||(sum%11==10&&isbn[12]=='X')) cout<<"Right";
	else 
	{
		if(sum%11!=10) isbn[12]=sum%11+48;
		else isbn[12]='X';
		cout<<isbn;
	}
	
}

然后我把字符数组开大到15后就通过了

#include<iostream>
//#include<cstdio>
using namespace std;
int main()
{
	char isbn[15];
	scanf("%s",isbn);
	int sum=0,b=1;
	for(int i=0;i<12;i++)
	{
		if(isbn[i]-48>=0&&isbn[i]-48<=9)
		{
			sum+=(isbn[i]-48)*b;
			b++;
		}
	} 
	if(sum%11==isbn[12]-48||(sum%11==10&&isbn[12]=='X')) cout<<"Right";
	else 
	{
		if(sum%11!=10) isbn[12]=sum%11+48;
		else isbn[12]='X';
		cout<<isbn;
	}
	return 0;
	
}

搞不懂为什么

2022/12/22 14:15
加载中...