完善后代码:
#include
#include
int main()
{
int i, sum1, sum2;
char str1[7], str2[7]; //数组开大一点,最多需要放六个字符外加一个字符串结束标志\0
sum1 = sum2 = 1;
scanf("%s\n%s", str1, str2); //输入字符串
i = 0;
while( str1[i] != '\0' )
{
sum1 *= str1[i++]-'A'+1; //计算各个数字的累积,其中[i++]使i自增了
}
i = 0;
while( str2[i] != '\0' )
{
sum2 *= str2[i++]-'A'+1; //计算各个数字的累积
}
if( sum1 % 47 == sum2 % 47 )
{
printf("GO");
}
else
{
printf("STAY");
}
return 0;
}
原代码:详解
#include
#include
int main()
{
int i, sum1, sum2, a1[6], a2[6];
char str1[7], str2[7]; //数组开大一点,最多需要放六个字符外加一个字符串结束标志\0
sum1 = 1;
sum2 = 1;
scanf("%s", str1);
scanf("%s", str2); //输入字符串
for(i=0; i<6; i++) //对彗星名判断
{
if(str1[i] == '\0') //如果是字符串结束标志\0则跳出循环
{
break;
}
else //如果不是字符串的结束标志\0
{
a1[i] = str1[i]-'A'+1; //计算出str1中字符串对应的数字
sum1 = sum1 * a1[i]; //计算各个数字的累积
}
}
for(i=0; i<6; i++) //对小组名判断,同上^_^
{
if(str2[i] == '\0')
{
break;
}
else
{
a2[i] = str2[i]-'A'+1;
sum2 = sum2 * a2[i];
}
}
int ID1, ID2;
ID1 = sum1 % 47;
ID2 = sum2 % 47; //累积值对47求余
if(ID1 == ID2)
{
printf("GO");
}
else
{
printf("STAY");
}
return 0;
}
一个字母大小写错误让我检查了半天 。。。 "GO" != "Go"