C语言_自定义函数使用用例

1 . 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。 
#include<stdio.h>
int main()
{
    int n = 0;
    int j = 0;
    int k = 0;
    printf("输入你想要的乘法表数:");
    scanf("%d", &n);
    for (k = 1; k <= n; k++)
    {
        for (j = 1; j <= k; j++)
        {
            printf("%2d x %2d = %2d ", j, k, j*k);
        }
        printf("\n");
    }
    return 0;
}

乘法表运行结果

2 . 实现一个函数判断year是不是闰年。

#include<stdio.h>
int judge_leap_year(int year)
{
    if ((0 == year % 4 && 0 != year % 100) || 0 == year % 400)
        return 1;
    else
        return 0;
}
int main()
{
    int year = 0;
    printf("输入年份:");
    scanf("%d", &year);
    if (judge_leap_year(year))
        printf("%d是闰年。\n", year);
    else
        printf("%d不是闰年。\n",year);
    return 0;
}

这里写图片描述

3 . 创建一个数组,

实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。

#include<stdio.h>
#include<string.h>
int init(int *arr)
{
    int i = 0;
    while (i < 10)
    {
        *(arr + i) = i;
        i++;
    }
    return 0;
}
int empty(int *arr)
{

    int i = 0;
    while (i < 10)
    {
        memset((arr + i), 0, sizeof(arr));//将0依次赋值给占用内存为sizeof(arr),地址为arr+i的变量中。函数原型:void * memset ( void * ptr, int value, size_t num );,
        i++;
    }
    return 0;
}
int reverse(int *arr,int L)
{
    int i = 0;
    while (i < L/2)
    {
        *(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i));
        *(arr + 9 - i) = (*(arr + i)) ^ (*(arr + 9 - i));
        *(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i));
        i++;
    }
    return 0;
}
int main()
{
    int arr[10]; 
    int i = 0;

    init(arr);//初始化
    printf("初始化结果。");
    while (i < 10)
    {
        printf("%d", arr[i]);
        i++;
    }

    empty(arr);//清空数组
    printf("\n数组清空结果。");
    i = 0;
    while (i < 10)
    {
        printf("%d", arr[i]);
        i++;
    }

    init(arr);//初始化
    int L = sizeof(arr) / sizeof(arr[0]);
    reverse(arr, L);//元素倒序
    printf("\n元素倒序结果结果:");
    i = 0;
    while (i < 10)
    {
        printf("%d", arr[i]);
        i++;
    }
    printf("\n");
    return 0;
}

这里写图片描述
PS:关于数组,可以看我的另一篇博客《数组初识总结》,讲解了数组入门问题,链接:这里写链接内容

4.猜数字。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int number = 57;
    int num = 0;
start:  scanf("%d", &num);
    if (num == number)
    {
        printf("猜对了!\n");
    }
    else if (num > number)
    {
        printf("大了,重新猜一下吧。\n");
        goto start;
    }
    else
    {
        printf("小了,重新猜一下吧。\n");
        goto start;
    }
    return 0;
}

这里写图片描述

5.判断一个数是否是素数

#include<stdio.h>
#include<math.h>
//返回-1,输入有误
//返回1,是素数
//返回因子,不是素数
int IsPrimeNumber(int number)
{
    if (number <= 1)//质数是大于1的自然数
        return -1;
    int rooting = (int)sqrt(number);
    for (int i = 2; i <= rooting; ++i)
    {
        if (number%i == 0)
            return i;
    }
    return 1;
}

int main()
{
    int number = 0;
    int result = 0;
    while (1)
    {
        printf("Please input a number : ");
        scanf("%d", &number);
        result = IsPrimeNumber(number);
        if (result == -1)
            printf("Input invalid.\n");
        else if (result == 1)
            printf("%d is primer.\n", number);
        else
            printf("%d isn't primer,factor is %d.\n", number,result);
    }
    return 0;
}

这里写图片描述

最后:欢迎各位前来评论,提问……..

  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值