注册 登录
编程论坛 C语言论坛

大佬们 求解

wuxiami 发布于 2022-07-29 10:16, 1071 次点击
//输入位数  在按输入的位数输入数字  判断是否回文数  并做成无限循环

#include<stdio.h>

void main()
{
    int shuzu[100];
    int weishu;
    int i;
    for (;;)                                   //无限循环
    {
        printf("输入要判断的数字位数\n");
        scanf_s("%d", &weishu);
        getchar();                 //注意这里getchar的目的
        printf("请输入要判断的数字:\n");

        for (i = 0; i < weishu; i++)
        {

            shuzu[i] = getchar();
        }
        //if (shuzu[i] == 'Y')  exit(0);
        //if (shuzu[i] == 'Y')  break;

        for (i = 0; i < (weishu / 2); i++)
        {
            if (shuzu[i] != shuzu[weishu - 1 - i])
            {
                break;
            }
        }
         

        if (i < (weishu / 2))
        {
            printf("\n不是回文数\n");
        }
        else
        {
            printf("\n是回文数\n");
        }
        //if (shuzu[i] == 'Y')  break;    //输入Y  退出无限循环
    }
   
    //return 0;
}

这里是一个判断回文数循环  如果遇到单独的Y退出
我现在想把他改成在输入时  输入数字个数不是一位  只要输入的多位数字或字符中含一个 Y就退出
如提示输入数字位数  输入6  提示输入数字  输入12345Y就可以退出
大佬们  小白求教  多谢
2 回复
#2
rjsp2022-07-29 14:44
好多逻辑上的 无意义且有害 的设定:
先输入位数 ------ 输入6,接着输入 123回车 怎么办?或输入 1234567回车 怎么办?或输入 UVWXYZ 怎么办?
输入Y ------ 输入y怎么办?或输入 ABC 怎么办?

而本来可以设定得很简单,比如:
输入一串不超过100字符长度的全数字字符串,判断是否为回文。若输入的不是全数字字符串,则退出。

[此贴子已经被作者于2022-7-29 14:46编辑过]

#3
wuxiami2022-07-29 17:16
回复 2楼 rjsp
关键是想搞明白怎么才解决到我说的情况,字母的话只要可以识别混在数字中间的 Y 就可以  别的不用管
有点不理解
希望各位大佬能给小白一些指导
多谢

[此贴子已经被作者于2022-7-29 22:29编辑过]

1