这个题在读数据上有很大的技巧性,用scanf读恰好,然后根据进制把读入的数转化成10进制的。
#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
int cas,base,num1,num2;
char str1[50],str2[50];
scanf("%d",&cas);
while(cas--)
{
scanf("%s %s %d",str1,str2,&base);
num1=num2=0;
for(int i=0; str1[i]!='\0'; i++)
{ int a;
if(isalpha(str1[i]))
a=str1[i]-'a'+10;
else a=str1[i]-'0';
num1=num1*base+a;
}
for(int i=0; str2[i]!='\0'; i++)
{
int a;
if(isalpha(str2[i]))
a=str2[i]-'a'+10;
else a=str2[i]-'0';
num2=num2*base+a;
}
printf("(%d,%d)\n",num1/num2,num1%num2);
}
return 0;
}
PS:这个题队友WA是因为str1,str2数组只开了10,数组溢出。“高教社杯”第三届福建省大学生程序设计竞赛