C语言实例:求两数的最小公倍数,阶乘,循环输出26个字母

求两数的最小公倍数

方法一:使用for循环

#include <stdio.h>

int main()
{
    int num1, num2, max;
    printf("请输入两个正整数:");
    scanf("%d %d", &num1, &num2);

    max = num1 > num2 ? num1 : num2;

    while (1)
    {
        if (max % num1 == 0 && max % num2 == 0)
        {
            printf("最小公倍数为:%d", max);
            break;
        }
        ++max;
    }

    return 0;
}

方法二:使用函数

#include <stdio.h>

int lcm(int x, int y);

int main()
{
    int num1, num2, LCM;
    printf("请输入两个正整数:");
    scanf("%d %d", &num1, &num2);

    LCM = lcm(num1, num2);

    printf("最小公倍数为:%d", LCM);

    return 0;
}

int lcm(int x, int y)
{
    static int i = 1;
    if (i % x == 0 && i % y == 0)
    {
        return i;
    }
    else
    {
        ++i;
        lcm(x, y);
        return i;
    }
}

方法三:使用辗转相除法

#include <stdio.h>

int gcd(int x, int y);

int main()
{
    int num1, num2, lcm, GCD;
    printf("请输入两个正整数:");
    scanf("%d %d", &num1, &num2);

    GCD = gcd(num1, num2);
    lcm = num1 * num2 / GCD;

    printf("最小公倍数为:%d", lcm);

    return 0;
}

int gcd(int x, int y)
{
    int temp;
    while (y != 0)
    {
        temp = x % y;
        x = y;
        y = temp;
    }
    return x;
}

C语言实例:阶乘

方法一:使用for循环

#include <stdio.h>

int main()
{
    int n, i;
    unsigned long long factorial = 1;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    // 如果输入的数字是负数,则输出错误提示
    if (n < 0)
        printf("错误!负数没有阶乘。");
    else
    {
        for (i = 1; i <= n; ++i)
        {
            factorial *= i;             // 阶乘计算
        }
        printf("%d 的阶乘 = %llu", n, factorial);
    }

    return 0;
}

方法二:使用while循环

#include <stdio.h>

int main()
{
    int n, i = 1;
    unsigned long long factorial = 1;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    // 如果输入的数字是负数,则输出错误提示
    if (n < 0)
        printf("错误!负数没有阶乘。");
    else
    {
        while (i <= n)
        {
            factorial *= i;             // 阶乘计算
            ++i;
        }
        printf("%d 的阶乘 = %llu", n, factorial);
    }

    return 0;
}

方法三:使用递归

#include <stdio.h>

unsigned long long factorial(unsigned int i);

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

    printf("%d 的阶乘为 %llu", n, factorial(n));

    return 0;
}

unsigned long long factorial(unsigned int i)
{
    if (i <= 1)
        return 1;
    return i * factorial(i - 1);
}

C语言实例:循环输出26个字母

方法一:使用for循环

#include <stdio.h>

int main()
{
    char c;

    for (c = 'A'; c <= 'Z'; ++c)
        printf("%c ", c);

    return 0;
}

方法二:使用while循环

#include <stdio.h>

int main()
{
    char c = 'A';

    while (c <= 'Z')
    {
        printf("%c ", c);
        ++c;
    }

    return 0;
}

方法三:使用do-while循环

#include <stdio.h>

int main()
{
    char c = 'A';

    do
    {
        printf("%c ", c);
        ++c;
    } while (c <= 'Z');

    return 0;
}

说明

以上三种方法都可以用于循环输出26个字母。其中,for循环是最常用的循环结构,它通过初始化、条件判断和步长控制来实现循环;while循环和do-while循环是另外两种常见的循环结构,它们的区别在于条件判断语句的位置不同。无论采用哪种循环结构,都需要定义一个字符变量作为计数器,从字母A开始循环输出,直到输出字母Z为止。

猜你喜欢

转载自blog.csdn.net/weixin_51624736/article/details/130024485