C语言——函数练习程序

1.从终端接收一个数,封装一个函数判断该数是否为素数

cpp 复制代码
#include <stdio.h>

int pri(int num)
{
    int i = 0;

    for (i = 2; i < num; i++)
    {
        if (num % i ==0)
        {
            return 0;
            break;
        }
    }

    if (i == num-1)
    {
        return 1;
    }
}

int main(void)
{
    int num = 0;
    int ret = 0;

    scanf("%d", &num);

    ret = pri(num);

    if (ret)
    {
        printf("该数是素数!\n");
    }else
    {
        printf("该数不是素数!\n");
    }

    return 0;
}

2.封装一个函数实现获得两个数的最大公约数

cpp 复制代码
#include <stdio.h>

int gcd(int num1, int num2)
{
    int i = 1;
    int j = 1;
    int cnt_1 = 0;
    int cnt_2 = 0;
    int n1[100] = {0};
    int n2[100] = {0};
    int tmp = 0;
    
    for (i = 1; i <= num1; i++)
    {
        if (num1 % i == 0)
        {
            n1[cnt_1] = i;
            cnt_1++;
        }
    }

    for (j = 1; j <= num2; j++)
    {
        if (num2 % j == 0)
        {
            n2[cnt_2] = j;
            cnt_2++;
        }
    }

    for (i = 0; i < cnt_1-1; i++)
    {
        for (j = 0; j < cnt_1-1-i; j++)
        {
            if (n1[j] > n1[j+1])
            {
                tmp = n1[j];
                n1[j] = n1[j+1];
                n1[j+1] = tmp;
            }
        }
    }

    for (i = 0; i < cnt_2-1; i++)
    {
        for (j = 0; j < cnt_2-1-i; j++)
        {
            if (n2[j] > n2[j+1])
            {
                tmp = n2[j];
                n2[j] = n2[j+1];
                n2[j+1] = tmp;
            }
        }
    }

    for (i = cnt_1-1; i >= 0; i--)
    {
        for (j = cnt_2-1; j >= 0; j--)
        {
            if (n1[i] == n2[j])
            {
                return n1[i];
            }

        }
    }
}

int main(void)
{
    int num1 = 0;
    int num2 = 0;
    int ret = 0;

    scanf("%d%d", &num1, &num2);

    ret = gcd(num1, num2);

    printf("最大公约数为%d\n", ret);
    
}

3.封装一个函数实现获得两个数的最小公倍数

cpp 复制代码
#include <stdio.h>

int lcm(int num1, int num2)
{
    int n1[100] = {0};
    int n2[100] = {0};
    int i = 0;
    int j = 0;
    for (i = 0; i < 100; i++)
    {
        n1[i] = num1 * (i+1);
    }

    for (i = 0; i < 100; i++)
    {
        n2[i] = num2 * (i+1);
    }

    for (i = 0; i < 100; i++)
    {
        for (j = 0; j < 100; j++)
        {
            if (n1[i] == n2[j])
            {
                return n1[i];
            }
        }

    }

}

int main(void)
{
    int num1 = 0;
    int num2 = 0;
    int ret = 0;

    scanf("%d%d", &num1, &num2);

    ret = lcm(num1, num2);
    
    printf("最小公倍数为:%d\n", ret);

    return 0;
}

4. 封装一个函数判断该年是否为闰年

cpp 复制代码
#include <stdio.h>

int leapyear(int year)
{
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    {
        return 1;
    }

    return 0;
}

int main(void)
{
    int year = 0;
    int ret = 0;
    
    scanf("%d", &year);
    ret = leapyear(year);

    if (ret == 1)
    {
        printf("该年是闰年!\n");
    }else 
    {
        printf("该年是非闰年!\n");
    }
    
    return 0;
}
相关推荐
fengfuyao98524 分钟前
基于MATLAB的GUI实现人脸检测、眼睛检测以及LBP直方图显示
开发语言·计算机视觉·matlab
CHANG_THE_WORLD41 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
Franklin1 小时前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
郝学胜-神的一滴1 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
John.Lewis1 小时前
数据结构初阶(13)排序算法-选择排序(选择排序、堆排序)(动图演示)
c语言·数据结构·排序算法
柯南二号2 小时前
【Java后端】MyBatis-Plus 原理解析
java·开发语言·mybatis
我是哈哈hh2 小时前
【Node.js】ECMAScript标准 以及 npm安装
开发语言·前端·javascript·node.js
Sammyyyyy4 小时前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
丑小鸭是白天鹅4 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
William一直在路上4 小时前
Python数据类型转换详解:从基础到实践
开发语言·python