我写的程序:找出10个数中的最小最大数,分别与原数组中的第一和第十个数交换
/*************函数功能***********输入10个整数,将其中最小的数与第
一个数对换,最大的数与最后一个数对换
作者:xiaomiking
日期:2010.3.8
*******************************/
#include <stdio.h>
int i, a[10];
int m, n, temp1, temp2, temp3;
int min, p0, max, p1;
void input();
void deal();
void output();
void main()
{
input();
deal();
output();
}
/********输入初始化函数*********/
void input()
{
printf("please input 10 numbers:\n");
for(i=0; i<10; i++)
scanf("%d", &a[i]);
printf("\n");
}
/**********处理函数**********/
void deal()
{
/*********初始化最大最小值*********/
if(a[0]>a[1])
{
min=a[1];
p0=1;
max=a[0];
p1=0;
}
else
{
min=a[0];
p0=0;
max=a[1];
p1=1;
}
for(m=2; m<10; m++)
{
if(min>a[m])
{
min=a[m];
p0=m;
}
}
for(n=2; n<10; n++)
{
if(max<a[n])
{
max=a[n];
p1=n;
}
}
p0=p0+1;
p1=p1+1;
if(p1!=1) //第一个数不是最大值
{
temp1=a[0];
a[0]=a[p0-1];
a[p0-1]=temp1;
temp2=a[9];
a[9]=a[p1-1];
a[p1-1]=temp2;
}
else if(p1=1 && p0!=10) //第一个数为最大值但最后一个数不是最大值
{
temp2=a[9];
a[9]=a[p1-1];
a[p1-1]=temp2;
temp1=a[0];
a[0]=a[p0-1];
a[p0-1]=temp1;
}
else /*第一个数为最大值且最后一个数为最小值*/
{
temp3=a[0];
a[0]=a[9];
a[9]=temp3;
}
}
/***********输出初始化函数***********/
void output()
{
for(i=0; i<10; i++)
printf("%d ", a[i]);
printf("\n");
}
大家还有什么好的想法,不要吝啬哦; 同时希望大家能给我更多的指点。