一些关于函数的练习(含答案)

一些关于函数的练习(含答案)

  1. 第一个人年龄为10岁,接下来后面一个人比前面一个人大2岁,试输入第几个人,求得其年龄。
  2. 求一个数的阶乘
  3. 进制转换

一、第一个人年龄为10岁,接下来后面一个人比前面一个人大2岁,试输入第几个人,求得其年龄。

/*
	功能:第一个人为10岁,后一个人都比前一个人大两岁,求第几人的年龄
	参数:x为人数;y为年龄;
	返回值:年龄
*/
#include<stdio.h>
int age(int n)										//用n来接收
{
    if(n == 1)										//若n=1,则为第一个人,直接输出10
    {
        return 10;
    }
    else
    {
        return age(n - 1) + 2;						//若不是,递归调用age()函数
    }
}
int main()
{
    int x,y;
    printf("请输入第几个人:\n");
    scanf("%d",&x);
    y = age(x);										//x传入age()函数中
    printf("该人年龄为:%d\n",y);
    return 0;
}

二、求阶乘

​ 我们高中学过一个数的阶乘。如:5!= 5 * 4 * 3 * 2 * 1。其使用的方法相同,据此,我们可以根据函数来写一个程序,就可以求各个数的阶乘啦!

/*
	功能:求一个数的阶乘
	参数:长长整型y 接收 jiecheng函数的返回值
	返回值:输入的数的阶乘
*/
#include<stdio.h>
int jiecheng(int n)
{
    int i;
    long long int m;
    for(i = 1;i < n+1;i++)								//小于n+1,可以取到n
    {
        m *= i;
    }
    return m;
}
int main()
{
    int x;
    long long int y;									//为防止超过范围,用long long int
    printf("请输入一个数:\n");
    scanf("%d",&x);
    y = jiecheng(x);
    printf("该数的阶乘为:%lld\n",y);
    return 0;
}

三、进制转换

​ 输入一个十进制的数,将其转换成任意进制(16进制内),借助我们高中学过的短除法思想来设计这个程序。

/*
	功能:进制转换(短除法,16进制内)
	参数:base 换算多少进制; n:转换前的数
	返回值:转换后的数
*/
#include<stdio.h>
void system(int base,int n)
{
    int a[16] = {0123456789abcdef};
    int b[64],c,i = 0;
    do										//因为要考虑到0的情况,所以用do--while
    {
        b[i] = n % base;					//短除法的应用
        n = n / base;
        i++;
    }while(n);
    printf("转化后为:\n")for(--i;i >= 0;--i)						//因为上列循环中多加了1,所以输出要先-1,且要倒着输出
    {
        c = b[i];
        printf("%d",a[c]);
    }
    printf("\n");
}
int main()
{
    int x,y;
    printf("请输入要转换的进制:\n");
    scanf("%d",&x);
    printf("请输入要转换的数:\n");
    scanf("%d",&y);
    return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值