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;
}
相关推荐
FrostedLotus·霜莲14 分钟前
C++主流编辑器特点比较
开发语言·c++·编辑器
超级码.里奥.农16 分钟前
零基础 “入坑” Java--- 七、数组(二)
java·开发语言
KENYCHEN奉孝24 分钟前
Rust征服字节跳动:高并发服务器实战
服务器·开发语言·rust
挺菜的33 分钟前
【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
java·开发语言·算法
妮妮喔妮1 小时前
【无标题】
开发语言·前端·javascript
fie88892 小时前
浅谈几种js设计模式
开发语言·javascript·设计模式
喝可乐的布偶猫2 小时前
Java类变量(静态变量)
java·开发语言·jvm
喝可乐的布偶猫2 小时前
韩顺平之第九章综合练习-----------房屋出租管理系统
java·开发语言·ide·eclipse
江山如画,佳人北望3 小时前
C#程序入门
开发语言·windows·c#
coding随想4 小时前
JavaScript中的BOM:Window对象全解析
开发语言·javascript·ecmascript