先看下面的我加了个判断
if(hx[len-1]=='\r')
break;
说明数组有\r被多读进来了
#include <stdio.h>
#include <string.h>
int main()
{
char hx[10];
char xz[10];
gets(hx);
gets(xz);
int h=1,x=1;
int len=strlen(hx);
for(int i=0;hx[i]!='\0';i++)
{
if(hx[len-1]=='\r')
break;
h=h*(hx[i]-'A'+1);
}
for(int i=0;xz[i]!='\0';i++)
{
x=x*(xz[i]-'A'+1);
}
if(h%47==x%47)
{
printf("GO");
}
else
{
printf("STAY");
}
}
所以数组里面有多余的\r
那为什么下面的代码可以通过呢
#include <stdio.h>
#include <string.h>
int main()
{
char hx[10];
char xz[10];
gets(hx);
gets(xz);
int h=1,x=1;
for(int i=0;hx[i]!='\0';i++)
{
h=h*(hx[i]-'A'+1);
}
for(int i=0;xz[i]!='\0';i++)
{
x=x*(xz[i]-'A'+1);
}
if(h%47==x%47)
{
printf("GO");
}
else
{
printf("STAY");
}
}