OJ:1043

Description

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数;
①输入10个数;②进行处理;③输出10个数。

Input

10个整数

Output

整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)

Sample Input

2 1 3 4 5 6 7 8 10 9

Sample Output

1 2 3 4 5 6 7 8 9 10

#include<stdio.h>
void sr(int a[])
{
	int i;
	for(i=0;i<10;i++){
		scanf("%d",&a[i]);
	}
}
void cl(int a[])
{
	int i,u,t,z,f;
	int zx=a[0],zd=a[9];
	int m=9,n=0;
	for(i=0;i<10;i++){
		if(a[i]>=zd){
		zd=a[i];
		m=i;	
		}
}
	for(i=0;i<10;i++){
		if(a[i]<=zx){
		zx=a[i];
		n=i;
		}
	}
	//注意以下段落,易错点在于进行了最小值的更换之后,a[i]原来所存储的数字已经被替代,而在第二组//交换的时候,由于有变量记录m的a[m]已经改变,所以会导致错误的输出。(当第一个为最大或者最后一个为//最小的时候会出现此情况wa)
    t=a[n];
	z=a[0];//当第一个数为最大值的时候,需要注意存储原来的数值,否则将会被第一个替换的a[n]所取代      //a[0]的位置
	a[n]=a[0];
	a[0]=t;
	//注意点
    if(m==0){
	f=a[9];
	u=z;
	a[9]=z;
	a[n]=f;	
	}
	else{
	u=a[9];
	a[9]=a[m];
	a[m]=u;
	}		
}
void sc(int a[])
{
	int i;
    for(i=0;i<10;i++){
    	printf("%d ",a[i]);
    }	
}		
int main()
{
	int a[10];
    sr(a);
	cl(a);
	sc(a);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值