首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scanf making while循环自动运行2次

scanf making while循环自动运行2次
EN

Stack Overflow用户
提问于 2015-07-26 22:23:14
回答 2查看 142关注 0票数 0

当我进入input a3 c4时,scanf会自动运行while循环2次吗?

厨师为下国际象棋开发了自己的计算机程序。他才刚刚起步。首先,他需要编写一个模块,该模块将接收玩家编写的移动并进行分析。模块将接收一个字符串,它应该首先报告该字符串是否代表棋盘上的正确单元对(我们称之为正确的字符串),然后根据棋盘上的情况报告它是否代表正确的走法。厨师总是在分析骑士的动作时遇到麻烦。因此,首先他需要一个测试程序来判断给定的字符串是否正确,然后判断它是否代表正确的骑士走法(无论棋盘上的情况如何)。棋盘上的单元被表示为两个字符的字符串:第一个字符是从a到h的小写拉丁字母,第二个字符是从1到8的数字。如果该字符串由5个字符组成,则代表棋盘上正确的单元对,其中前两个字符表示国际象棋人物所在的单元,第三个字符是破折号"-“,最后两个字符表示目标单元。输入第一行包含的单个整数T <= 50000,测试用例的个数。接下来是测试用例。每个测试用例的唯一行包含一个非空字符串,该字符串由ASCII代码从32到126的字符组成。字符串的长度不大于10。对于每个测试用例,如果相应的字符串不代表棋盘上的正确单元对,则输出包含单词"Error“的单行。否则,如果这对单元格表示正确的骑士移动,则输出"Yes“,否则输出"No”。示例输入:4 a1-b3 d2-h8 a3 c4 ErrorError

输出:是无错误错误

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
int main()
{
    int test;
    scanf("%d",&test);
    while(test--)
    {
        char str[11];
        scanf("%s[^\n]",str);
        int length=strlen(str);
        if(length>5 || length<5)
        {
            printf("Error\n");
        }
        else if(str[0]<97 || str[0]>104 || str[1]<49 || str[1]>57 || str[2]!=45 || str[3]<97 || str[3]>104 || str[4]<48 || str[4]>57)
        {
            printf("Error\n");
        }
        else
        {

            if(abs(str[0]-str[3])==1 && abs(str[1]-str[4])==2  ||  abs(str[0]-str[3])==2  ||abs(str[1]-str[4])==1)
            {
                printf("Yes\n");
            }
            else
            {
                printf("No\n");
            }
        }
    }
    return 0;
}

我应该怎么做才能让它正常运行。

EN

回答 2

Stack Overflow用户

发布于 2015-07-26 22:28:45

代码语言:javascript
复制
char str[11];
scanf("%s[^\n]",str);

没有初始化?应该是

代码语言:javascript
复制
char str[11];
str[0] = 0;
scanf("%s[^\n]",str);
票数 0
EN

Stack Overflow用户

发布于 2015-07-26 22:31:39

在您的测试用例中,您希望循环执行4次,并且它做到了。a3 c4输入生成两个错误,因为scanf只读取a3 (因为两者之间没有连字符),其余的保留在缓冲区中供下一个scanf使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31638042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档