C语言实例:判断数字为几位数,判断回文数,用于计算一个数的 n 次方(详细代码和实现思路)

C语言实例 - 判断数字为几位数

这个C语言代码实例的目的是判断输入的数字为几位数。以下是代码的思路:

  1. 首先,定义一个整数变量 num
  2. 然后,使用 scanf 函数将用户输入的数字存储在 num 变量中。
  3. 接下来,使用 if 语句来判断 num 的位数。
  4. 如果 num 小于 10,则它只有一位数。
  5. 如果 num 大于等于 10 且小于 100,则它有两位数。
  6. 如果 num 大于等于 100 且小于 1000,则它有三位数。
  7. 如果 num 大于等于 1000,则它有四位数或更多位数。

以下是完整的代码实现:

#include <stdio.h>

int main() {
    int num;
    printf("请输入一个数字:");
    scanf("%d", &num);

    if (num < 10) {
        printf("这个数字是一位数");
    } else if (num >= 10 && num < 100) {
        printf("这个数字是两位数");
    } else if (num >= 100 && num < 1000) {
        printf("这个数字是三位数");
    } else {
        printf("这个数字是四位数或更多位数");
    }

    return 0;
}

以下是 C 语言实例,用于计算一个数的 n 次方。

第一种方式:使用循环

#include <stdio.h>

int main() {
    double base, result = 1;
    int exponent;

    printf("请输入一个底数: ");
    scanf("%lf", &base);

    printf("请输入一个指数: ");
    scanf("%d", &exponent);

    // 当 exponent 为负数时,将 base 变为倒数并使 exponent 为正数
    if (exponent < 0) {
        base = 1 / base;
        exponent = -exponent;
    }

    // 循环计算 base 的 exponent 次方
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }

    printf("%.2lf 的 %d 次方为 %.2lf", base, exponent, result);

    return 0;
}

第二种方式:使用递归

#include <stdio.h>

double power(double base, int exponent);

int main() {
    double base, result;
    int exponent;

    printf("请输入一个底数: ");
    scanf("%lf", &base);

    printf("请输入一个指数: ");
    scanf("%d", &exponent);

    result = power(base, exponent);

    printf("%.2lf 的 %d 次方为 %.2lf", base, exponent, result);

    return 0;
}

double power(double base, int exponent) {
    if (exponent == 0) {
        return 1;
    } else if (exponent == 1) {
        return base;
    } else if (exponent < 0) {
        return 1 / power(base, -exponent);
    } else {
        return base * power(base, exponent - 1);
    }
}

思路

两种方式都是通过输入底数和指数,并计算出结果,其中第一种方式使用了循环,第二种方式使用了递归。

循环

  1. 首先,定义一个 result 变量并将其初始化为 1。
  2. 然后,使用 scanf 函数将用户输入的底数和指数存储在相应的变量中。
  3. 如果指数为负数,则将底数变为倒数并使指数为正数。
  4. 使用 for 循环计算底数的指数次方,将结果存储在 result 变量中。
  5. 最后,输出计算结果。

递归

  1. 首先,定义一个 power 函数,该函数接受底数和指数作为参数,并返回计算结果。
  2. power 函数中,如果指数为 0,则返回 1。
  3. 如果指数为 1,则返回底数。
  4. 如果指数为负数,则将底数变为倒数并使指数为正数,然后递归调用 power 函数。
  5. 如果指数为正数,则使用递归计算底数的指数次方,并返回结果。
  6. 最后,在 main 函数中,使用 scanf 函数将用户输入的底数和指数存储在相应的变量中,并调用 power 函数计算结果。
  7. 最后,输出计算结果。

C 语言实例 - 判断回文数

以下是三种 C 语言代码实例,用于判断一个数是否为回文数。

方法一:使用数组

#include <stdio.h>

int main() {
    int num, reversed = 0, remainder, original;
    printf("请输入一个整数: ");
    scanf("%d", &num);
    original = num;

    // 将数字反转
    while (num != 0) {
        remainder = num % 10;
        reversed = reversed * 10 + remainder;
        num /= 10;
    }

    // 判断是否为回文数
    if (original == reversed) {
        printf("%d 是回文数", original);
    } else {
        printf("%d 不是回文数", original);
    }

    return 0;
}

方法二:使用指针

#include <stdio.h>

int main() {
    int num, reversed = 0, remainder, original;
    int *ptr_num = &num, *ptr_reversed = &reversed;
    printf("请输入一个整数: ");
    scanf("%d", ptr_num);
    original = num;

    // 将数字反转
    while (num != 0) {
        remainder = num % 10;
        *ptr_reversed = *ptr_reversed * 10 + remainder;
        num /= 10;
    }

    // 判断是否为回文数
    if (original == reversed) {
        printf("%d 是回文数", original);
    } else {
        printf("%d 不是回文数", original);
    }

    return 0;
}

方法三:使用递归

#include <stdio.h>

int is_palindrome(int num);

int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);

    if (is_palindrome(num)) {
        printf("%d 是回文数", num);
    } else {
        printf("%d 不是回文数", num);
    }

    return 0;
}

int is_palindrome(int num) {
    static int reversed = 0;

    // 将数字反转
    if (num != 0) {
        reversed = reversed * 10 + num % 10;
        is_palindrome(num / 10);
    }

    // 判断是否为回文数
    if (num == reversed) {
        return 1;
    } else {
        return 0;
    }
}

思路

三种方法都是通过将输入的数字反转,然后将反转后的数字与原始数字进行比较,来判断是否为回文数。

方法一:使用数组

  1. 首先,定义一个整数变量 num 和一个用于存储反转数字的整数变量 reversed
  2. 然后,使用 scanf 函数将用户输入的数字存储在 num 变量中,并将其保存在 original 变量中备用。
  3. 使用 while 循环将数字反转,并将其存储在 reversed 变量中。
  4. 最后,比较 originalreversed 变量的值,以确定它们是否相等。

方法二:使用指针

  1. 首先,定义两个整数变量 numreversed,以及两个指向这些变量的指针 ptr_numptr_reversed
  2. 然后,使用 scanf 函数将用户输入的数字存储在 num 变量中,并将其保存在 original 变量中备用。
  3. 使用 while 循环将数字反转,并将其存储在 reversed 变量中。
  4. 最后,比较 originalreversed 变量的值,以确定它们是否相等。

方法三:使用递归

  1. 首先,定义一个 is_palindrome 函数,该函数接受一个整数作为参数,并返回一个整数。此函数使用静态变量 reversed 来存储反转数字。
  2. is_palindrome 函数中,使用递归将数字反转,并将其存储在 reversed 变量中。
  3. 如果数字为零,则比较原始数字和反转数字,以确定它们是否相等。
  4. 如果它们相等,则返回 1。否则,返回 0。
  5. main 函数中,使用 scanf 函数将用户输入的数字存储在 num 变量中。
  6. 调用 is_palindrome 函数来判断 num 是否为回文数。
  7. 最后,输出结果。

以上是三种方法来判断输入的数字是否为回文数。

猜你喜欢

转载自blog.csdn.net/weixin_51624736/article/details/130024749
今日推荐