牛骨文教育服务平台(让学习变的简单)
博文笔记

8.3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

创建时间:2018-03-24 投稿人: 浏览次数:164

8.3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写三个函数:1.输入10个数;2进行处理;3输出10个数。

个人代码如下

#include <stdio.h>
int main()
{
    int a[10];
    void input_number(int *a);   //声明输入函数
    void sort_number(int *a);   //声明输入函数
    void output_number(int *a); //声明输入函数
    input_number(a);
   sort_number(a);
   output_number(a);
    
}
//输入函数
void input_number(int *a)
{
    int *m;
    for (m=a, printf("Please enter 10 numbers: "); m<a+10; scanf("%d", m++));
}
//调换函数
void sort_number(int *a)
{
    int m1,m2;  //m1,m2分别为最小数和最大数所在的列
    int t1,t2,i;
    for(i=0,t1=t2=*a,m1=m2=0;i<10;i++)
    {
        if(*(a+i)>t1)   // 寻找最大数以及所在列
        {
            t1=*(a+i);m1=i;
        }
        if(*(a+i)<t2)  // 寻找最小数以及所在列
        {
            t2=*(a+i);m2=i;
        }
    }
     *(a+m1)=*(a+9);*(a+9)=t1;  //最大数和最后一个数对换
     *(a+m2)=*a;*a=t2;  //最小数和最后一个数对换
}
//输出函数
 void output_number(int *a)
{
    int i;
    for(i=0;i<10; printf("%3d",*(a+(i++))));
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。