题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
思路:使用数组a存储是个数字 使用数组b记录最大数和最小数以及其对应的位置,记录完成后将最大数最小数和首尾数字互换。
以下代码可以满分通过acm训练系统
//baizhen
#include <stdio.h>
void shuru(int a[]);
void chuli(int a[],int b[]);
void shuchu(int a[]);
void shuru(int a[])
{
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
}
void chuli(int a[],int b[])
{
b[0]=a[0];
b[1]=0;
for(int i=0;i<10;i++)
{
if(a[i]<b[0])
{
b[0]=a[i];
b[1]=i;
}
}
int stop=a[0];
a[0]=b[0];
a[b[1]]=stop;
b[2]=a[0];
b[3]=0;
for(int i=0;i<10;i++)
{
if(a[i]>b[2])
{
b[2]=a[i];
b[3]=i;
}
}
stop=a[9];
a[9]=b[2];
a[b[3]]=stop;
}
void shuchu(int a[])
{
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}
int main(void)
{
int a[10],b[4]={0};
shuru(a);
chuli(a,b);
shuchu(a);
return 0;
}