标题:回文数游戏求解
只看楼主
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
结帖率:100%
已结贴  问题点数:20 回复次数:11 
回文数游戏求解
先输入十位以上的数字 由用户设定输入数字的位数(比如用户输入11,则意味着要判断的数字是11位),再输入对应位数的数字,再判断是否是回文数。
          同时,把程序做成无限循环,可以不用退出重新运行,就可以不断做这个判断。
          在此基础上,用户输入的时候,如果输入大写字母Y,则退出游戏。
搞了好久了  一直搞不明白 有问题
求哪位大神帮忙解答
搜索更多相关主题的帖子: 数字 输入 判断 回文 游戏 
2022-07-17 20:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
由用户设定输入数字的位数(比如用户输入11,则意味着要判断的数字是11位),再输入对应位数的数字
这……,看不懂!为什么要别人先输入位数?如果输入的位数,与实际输入的维数不一致又怎么办?
相当于,说话之前必须先报“我接下来说的话共有xxx个字”,然后再巴啦巴啦

搞了好久了  一直搞不明白 有问题
有问题的话,难道不应该贴出有问题的代码吗?
你去医院,也不可能只说“我有病”却不让医生检查你的身体吧
2022-07-18 10:21
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:0 
这么长的数字用char数组保存,从两头往中间挨个对比,有一个不一样就不是回文。
2022-07-18 12:15
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
得分:0 
回复 2楼 rjsp
#include<stdio.h>

void main()
{
    int shuzi[13];
    int i;
   


    printf("请输入要判断的数字:");

    for (i = 0; i < 13; i++)
        shuzi[i] = getchar();
   
    for (i = 0; i<6;i++)
    {
        if (shuzi[i] != shuzi[12 - i])
            break;
    }
    if (i < 6)
    {
        printf("\n不是回文数");
    }
    else
    {
        printf("\n是回文数");
    }
}
这个是判断十三位回文数的  怎么改成题目要求的     xiexiedashenmen

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

2022-07-18 22:19
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
得分:0 
回复 4楼 wuxiami
今天搞了好长时间   泪
2022-07-18 22:21
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:20 
回复 5楼 wuxiami
判断回文数还是不太难的,不过添加长度限制  就有些无聊了(要写很多没用的废代码,你自己添加吧)
程序代码:
#include <stdio.h>
#include <string.h>
typedef enum{false,true} bool;

bool hw(char *s )
{
    bool ret=true;
    char * beg=s;
    char * end=s+strlen(s)-1;
    while(end>=beg)
    {
        if (*beg!=*end)
        {
            return false;
        }
        beg++;
        end--;
    }
    return ret;
}

int main()
{
    char t[100]={"\0"};
    printf("请输入一个整数:");
    scanf("%s",t);
    if (hw(t))
    {
        printf("%s是一个回文数\n",t);
    }
    else
    {
        printf("%s不是一个回文数\n",t);
    }
    return 0;
}

DO IT YOURSELF !
2022-07-19 09:20
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
得分:0 
回复 6楼 wp231957
麻烦您了
2022-07-19 10:26
xuequansongmo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-3-6
得分:0 
结构流程图怎么画
2022-07-19 10:56
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 8楼 xuequansongmo
这玩意还要流程图干嘛

DO IT YOURSELF !
2022-07-19 11:43
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
得分:0 
大佬们  问一个挺奇怪的问题    就是我的程序调试输出看起来不对  但可以正常运行  输出也正确
这是怎么回事

#include <stdio.h>

int main()
{
    // int n[13] = { 1,2,3,6,5,4,7,8,9,10,11,33,23 };
    int n[13], m;
    printf("输入一个数组,包含13个数字");
    for (m = 0; m < 13; m++)
        n[m] = getchar();
    getchar();
    int nums = sizeof(n) / sizeof(int), temp, i;

    for (i = 1; i < nums; i++)
    {
        for (int j = nums - 1; j >= i; j--)
        {
            if (n[j - 1] > n[j])
            {
                temp = n[j - 1];
                n[j - 1] = n[j];
                n[j] = temp;
            }
            for (int a = 0; a < nums; a++)
                printf("");
        }
    }

    for (int a = 0; a < nums; a++)
    {
        printf("%d  ", n[a]);
    }
    printf("\n");
    for (i = 1; i < nums; i++)
    {
        for (int j = nums - 1; j >= i; j--)
        {
            if (n[j - 1] < n[j])
            {
                temp = n[j - 1];
                n[j - 1] = n[j];
                n[j] = temp;
            }
            for (int a = 0; a < nums; a++)
                printf("");
        }
    }
    for (int a = 0; a < nums; a++)
    {
        printf("%d  ", n[a]);
    }

}
就像这题   完全正确  但调试 显示n的值为0*009bfe0c{49,50,51,52,53,54,55,56,57,48,49,50,51}
汗了

[此贴子已经被作者于2022-7-20 18:41编辑过]

2022-07-20 18:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509588-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.146408 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved