1.先用函数输入10个数,再调整,最后输出
2.整体思路
在进行数值逐个比较的同时找到最小值的空间地址以及最大值的空间地址,使用这两个空间
中的数据最终与第一和最后数据进行对换即可
3.上代码
1.先解决函数
#include<stdio.h>
void input(const int arr[],int sz)
{
int i,j;
for(i=0;i<sz;i++)
{
scanf("%d",arr+i);
}
}
void output(const int arr[],int sz)
{
int i;
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
//把大小元素放到两端
void setarr(int arr[] , int sz)
{
int i=0 , min = i , max = i;
for(i = 0 ; i < sz ; i++ )
{
//找到最小和最大元素
if(arr[i]>arr[max])
{
max = i ;
}
if(arr[i]<arr[min])
{
min = i ;
}
}
//找到了就开始交换
//先判断是不是原本就是最大最小
if(arr[0] != arr[min])
{
int tmp = arr[0];
arr[0] = arr[min];
arr[min] = tmp;
}
if(arr[sz-1] != arr[max])
{
int tmp = arr[sz-1];
arr[sz-1] = arr[max];
arr[max] = tmp;
}
}
2.再用主函数调用
int main()
{
int arr[10];
//求一下数组元素个数
int sz = sizeof(arr)/sizeof(arr[1]);
//输入十个数
input(arr,sz);
//输出未调整的数组
puts("原数组:") ;
output(arr,sz);
//调整数组
setarr(arr,sz);
//输出调整过后的数组
puts("调整后的数组:") ;
output(arr,sz);
return 0;
}
2.效果图