函数题经典练习

本题要求实现一个函数,可计算一维数组中最大与最小值的差。数据在主函数中读入。
int max_min(int a[],int n)
{
    int min=a[0];
    int max=a[0];
    for(int i=1;i<n;i++)
    {
        if(a[i] > max)
           max=a[i];
        if(a[i] < min)
           min=a[i];
    }
    return max-min;
}
本题要求实现一个简单函数,找出两个数中的最大值。
void findmax( int *px, int *py, int *pmax )
{
    *pmax=*px>*py?*px:*py;
}
fun函数的功能是:给定n个实数,输出平均值,并统计小于等于平均值的实数个数。
int fun(float x[],int n)
{
    float average=0,sum=0;
    int y=0,j=0;
    for(y=0;y<n;y++)
    {
        sum=sum+x[y];
    }
    average=sum/n;
    for(y=0;y<n;y++)
    {
        if(x[y]<=average)
        {
            j++;
        }
    }
    printf("ave=%.2f\n",average);
    return j;
}
请设计求两个对象最大值的函数模板。
template <typename TYPE>
TYPE& Max(const TYPE &x, const TYPE &y)
{
return (TYPE&)(x >= y ? x : y);
}
请编写函数,用递归方法求阶乘。

n!=1×2×3×⋯×n

规定:0!=1

函数原型
double Fac(int x)
{
    double jiecheng;
    if(x==0||x==1)
    {
        jiecheng=1;
    }
    else 
    {
            jiecheng=x*Fac(x-1);
     }
    return jiecheng;
}

定义一个函数,求一组整数的最大值和最小值。

void fun( int *a,int n,int *max, int *min )
{
    int x=0;
    *max=a[0];*min=a[0];
    for(x;x<n;x++)
    {
        if(a[x]>*max)
        {
            *max=a[x];
        }
        if(a[x]<*min)
        {
            *min=a[x];
        }
    }
}
从键盘输入n(n<=10),n代表数组元素个数,对数组进行所有元素的输入输出,输入输出功能在fun函数中实现,主函数不要动,要求用指针法操作数组,不要用下标法。

void fun(int b[],int n)
{
    int *p,x=0;
    for(x=0;x<n;x++)
    {
        scanf("%d",&b[x]);
    }
    for(p=b;p<(b+n-1);p++)
    {
        printf("%d ",*p);
    }
    printf("%d",*(b+n-1));
}

定义函数处理结构体数组,按成绩从高到低降序排列。

void  fun ( struct stu *p, int n )
{
    int x,j;
    for(x=0;x<n;x++)
    {
        for(j=0;j<n-x;j++)
        {
            if(p[j+1].score>p[j].score)
            {
                struct stu t;
                t=p[j+1];
                p[j+1]=p[j];
                p[j]=t;
            }
        }
    }
}
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值