最小数和最大数

题目:最小数和最大数
输入 nn 个数,找到其中最小的数和最大的数

输入格式
第一行一个整数 n (1<= <= 100)
第二行 n个整数 a (1<= a<=10000)
输出格式
两个整数,分别表示最小的数和最大的数。
样例输入
4
3 9 8 1
输出
1 9
AC如下:

#include <stdio.h>
void nzp(int a[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(a[j]>a[k])
                k=j;
        if(k!=i)
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
}
main()
{   int b[100],i,n;
 scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&b[i]);
 nzp(b,n);
 printf("%d %d",b[n-1],b[0]);
 }

利用了选择排序法对数组元素由大到小进行排序。

void nzp(int a[],int n)  /*这里的函数仅仅为了完成排序,不需要输出
{
int i,j,k,t;
    for(i=0;i<n-1;i++) /*n个数据进行n-1趟比较*/
    {
        k=i; /*k记录排序范围内的第一个元素的位置*/
        for(j=i+1;j<n;j++)  /*找出最大元素的位置,由k记录*/
            if(a[j]>a[k])
                k=j;
        if(k!=i)  /*k若不为排序范围内的第一个元素(即第i个元素不是最大元素)*/
        {
            t=a[k]; /*将最大的元素与第i个元素对调*/
            a[k]=a[i];
            a[i]=t;
        }
    }
}

本次收获:在数组名作为函数参数时,可将数组在形参中设置为 nzp(int a[],int n),引用时nzp(b,n)。
知识点:数组名作为函数参数时,形参和实参都应使用数组名,并且要求实参与形参的类型相同、维数相同。再进行参数传递时,按单向“值传递”,方式传递地址,即将实参数组名所代表的首地址传递给形参数组名,而不是将实参数组的每个单元一一传送给形参的各数组元素。形参数组名接受了实参数组首地址后,形参与实参共用相同的存储区域。在被调函数中,如果形参数组的数据发生变化,则实参也发生变化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值