请问我这用gets输入为什么可以通过呢
查看原帖
请问我这用gets输入为什么可以通过呢
1289975
shuiyuans楼主2024/3/17 11:58

先看下面的我加了个判断 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");
    }
}
2024/3/17 11:58
加载中...