创建用于检查数字是否为回文的函数

问题描述 投票:1回答:1

我正在尝试使一个函数在回文数为真的情况下返回true,在数字不是的情况下返回false,因此首先我创建了一个对数字进行求反的函数,然后创建另一个函数以求出反转的数字是否等于原始数。数字,但没有为我返回正确的输出,有帮助吗?

 #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <math.h>
    //Reversing a number
    int DigitsReversing(int num)
    {
        int resultofR = 0;
        while (num > 0)
        {
            resultofR = resultofR * 10 + num % 10;
            num = num / 10;
        }
        return resultofR;
    }
    //telling if the original number equal to the reversed number if yes return if not return false
    int isPali(int num)
    {

        DigitsReversing(num);
        int resultofR;
        if (num == resultofR)
            return true;
        else
            return false;
        return 0;


    }

    //calling the function 
    int main()
    {
        int num;
        scanf("%d", &num);
        printf("%d", isPali(num));
        return 0;
    }

编辑的****:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
int DigitsReversing(int num)
{
    int resultofR = 0;
    while (num > 0)
    {
        resultofR = resultofR * 10 + num % 10;
        num = num / 10;
    }
    return resultofR;
}


bool isPali(int num , int resultofR)
{
    resultofR = DigitsReversing(num);
    if (num == resultofR)
        return true;
    else
        return false;


}


int main()
{
    int num, resultofR;
    scanf("%d", &num);
    resultofR = DigitsReversing(num);
    isPali(num, resultofR);
c algorithm palindrome
1个回答
0
投票

C确实具有布尔数据类型。通常,0为假,1为真。返回值应为1表示true,0表示false。

#include<stdio.h>
#include<math.h>
//Reversing a number
int DigitsReversing(int num)
{
    int resultofR = 0;
    while (num > 0)
    {
        resultofR = resultofR * 10 + num % 10;
        num = num / 10;
    }
    return resultofR;
}
//telling if the original number equal to the reversed number if yes return if not return false
void isPali(int num)
{
    int resultofR= DigitsReversing(num);
    if (num == resultofR)
        printf("True");
    else
    printf("False");


}

//calling the function 
int main()
{
    int num;
    scanf("%d",&num);
    isPali(num);
    return 0;
}

输出对于非回文数。

9998
False
--------------------------------
Process exited after 10.35 seconds with return value 0
Press any key to continue . . .

回文数。

9999
True
--------------------------------
Process exited after 10.35 seconds with return value 0
Press any key to continue . . .
© www.soinside.com 2019 - 2024. All rights reserved.