3.22变量作业

作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
    
    int fun(int i,int j)
    {
        int temp=0;
        temp=i;i=j;j=temp;      //交换次序
    printf("交换后的值为:%d %d\n",i,j);

    }


int main(int argc, const char *argv[])
{
    int m,n;         //定义两个变量
    printf("输入两个数:");
    scanf("%d,%d",&m,&n);
    fun(m,n);
    return 0;
}

作业2:定义函数实现,主调函数中,输入6名学生成绩,调用函数求6名学生成绩的平均值,将平均值返回给主函数并输出。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

    int ave(int *p,int n)
    {
        int sum=0;
        for(int i=0;i<6;i++)
        {
            sum+=*(p);
        }
        return sum;
    }




int main(int argc, const char *argv[])
{
    int s[6];
    for(int i=0;i<6;i++)
    {
        printf("输入第%d个学生的成绩:",i+1);
        scanf("%d",&s[i]);
    }
    ave(s,6);
    printf("平均值为:%d\n",ave(s,6)/6);
    return 0;
}

作业3:定义-一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的降序输出,要求形参与实参皆使用指针完成。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

    void fun(int *p,int n)
    {
        for(int i=1;i<n;i++)
        {
            for(int j=0;j<n-i;j++)
            {
                if(*(p+j) < *(p+j+1))
                {
                    int temp=0;
                        temp=*(p+j);
                    *(p+j)=*(p+j+1);
                    *(p+j+1)=temp;
                }
            }
        }
    printf("降序输出元素为:");
    for(int i=0;i<5;i++)
    {
        printf("%d\t",*p);
        p++;
    }
    printf("\n");
    }




int main(int argc, const char *argv[])
{
    int arr[5];
    int *p=arr;
    for(int i=0;i<5;i++)
    {
        printf("输入第%d个元素",i+1);
        scanf("%d",&p[i]);
    }
    fun(p,5);
    return 0;
}

作业4:定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的逆置,要求形参与实参皆使用指针完成

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

    void fun(int *p,int n)
    {
        for(int i=0;i<5/2;i++)
        {
            int temp=p[i];
            p[i]=p[4-i];
            p[4-i]=temp;

        }
        printf("逆序元素排列为:");
        for(int i=0;i<5;i++)
        {
            printf("%d\t",*p);
            p++;
        }
        printf("\n");
    }

int main(int argc, const char *argv[])
{
    int arr[5];
    int *p=arr;
    for(int i=0;i<5;i++)
    {
        printf("输入第%d个元素",i+1);
        scanf("%d",&p[i]);
    }
    fun(p,5);
    return 0;
}

作业5:一个人赶着鸭子去每个村庄卖,每经过一个村子 卖去所赶鸭子的一半又- -只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶了多少只鸭子?使用递归函数求出鸭子总数。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

    int s(int n)
    {
        if(n==1)
        {
            return 2;
        }else
        {
            return (s(n-1)+1)*2;
        }
    }


int main(int argc, const char *argv[])
{
    int ya=s(8);
    printf("出发时赶%d只鸭子",ya);
    return 0;
}

作业6:小明想要编写一个递归函数, 接收-个非负整数, 输出该数的所有位,请你帮帮他吧。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

    void shu(int i)
    {
        if(i%10==i)     //判断该数值是否为个位数
        {
            printf("%d\t",i);
        }else
        {
            printf("%d\t",i%10);     //输出该位的数值
            return shu(i/10);        //返回该数值除以10后的值
        }
        printf("\n");
    }


int main(int argc, const char *argv[])
{
    int s;            //定义一个变量
    printf("请输入一个非负整数:");
    scanf("%d",&s);        //输入数值
    shu(s);      //定义一个数组
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值