最小数和最大数

题目:最小数和最大数
输入 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)。
知识点:数组名作为函数参数时,形参和实参都应使用数组名,并且要求实参与形参的类型相同、维数相同。再进行参数传递时,按单向“值传递”,方式传递地址,即将实参数组名所代表的首地址传递给形参数组名,而不是将实参数组的每个单元一一传送给形参的各数组元素。形参数组名接受了实参数组首地址后,形参与实参共用相同的存储区域。在被调函数中,如果形参数组的数据发生变化,则实参也发生变化

猜你喜欢

转载自blog.csdn.net/Lyyforever1220/article/details/89279319
今日推荐