使用C语言编写程序,输入10个整数,将其中最小的数与第一个数交换,最大的数与最后一个数交换。
#include<stdio.h>
void input(int a[10])
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a<i>);
}
}
void exchange(int a[10])
{
int i,min,max,temp,big,small;
min=max=a[0];
for(i=0;i<10;i++)
{
if(max<a<i>)
{
max=a<i>;
big=i;
}
if(min>a<i>)
{
min=a<i>;
small=i;
}
}
temp=a[0];
a[0]=a[small];
a[small]=temp;
temp=a[9];
a[9]=a[big];
a[big]=temp;
}
void output(int a[10])
{
int i;
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf("\n");
}
int main()
{
int a[10];
input(a);
exchange(a);
output(a);
return 0;
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。
void max_min(int *a,int index,int end); //声明函数
void main(){
int a[10],i; //定义数组a用来存储10个整数
for(i=0;i<10;i++) //输入10个整数
scanf("%d",&a[i]);
for(i=0;i<10;i++) //输出交换前的数组a的元素
printf("%d ",a[i]);
printf("\n");
max_min(a,0,9); //调用查找并交换最大最小值
for(i=0;i<10;i++) //输出交换后的数组a的元素
printf("%d ",a[i]);
printf("\n");
}
void max_min(int *a,int index,int end){
int *indexp,*endp,*temp,*maxp,*minp; //分别定义指向第一个元素、指向最后一个元素、临时、
//指向最大、指向最小的指针变量
indexp=(int *)malloc(sizeof(int)); //给指针们分配存储空间
endp=(int *)malloc(sizeof(int));
temp=(int *)malloc(sizeof(int));
maxp=(int *)malloc(sizeof(int));
minp=(int *)malloc(sizeof(int));
*indexp=index; //给指针们初始化
*endp=end;
*maxp=*indexp;
*minp=*endp;
for(int i=0;i<=*endp;i++){ //查找最大最小值
if(a[*maxp]<a[i]) *maxp=i;
if(a[*minp]>a[i]) *minp=i;
}
*temp=a[*indexp]; //把最小值与第一个元素交换
a[*indexp]=a[*minp];
a[*minp]=*temp;
*temp=a[*endp]; //把最大值与最后一个元素交换
a[*endp]=a[*maxp];
a[*maxp]=*temp;
free(indexp); //给指针们释放空间
free(endp);
free(maxp);
free(minp);
free(temp);
}
void max_min(int *a,int index,int end); //声明函数
void main(){
int a[10],i; //定义数组a用来存储10个整数
for(i=0;i<10;i++) //输入10个整数
scanf("%d",&a[i]);
for(i=0;i<10;i++) //输出交换前的数组a的元素
printf("%d ",a[i]);
printf("\n");
max_min(a,0,9); //调用查找并交换最大最小值
for(i=0;i<10;i++) //输出交换后的数组a的元素
printf("%d ",a[i]);
printf("\n");
}
void max_min(int *a,int index,int end){
int *indexp,*endp,*temp,*maxp,*minp; //分别定义指向第一个元素、指向最后一个元素、临时、
//指向最大、指向最小的指针变量
indexp=(int *)malloc(sizeof(int)); //给指针们分配存储空间
endp=(int *)malloc(sizeof(int));
temp=(int *)malloc(sizeof(int));
maxp=(int *)malloc(sizeof(int));
minp=(int *)malloc(sizeof(int));
*indexp=index; //给指针们初始化
*endp=end;
*maxp=*indexp;
*minp=*endp;
for(int i=0;i<=*endp;i++){ //查找最大最小值
if(a[*maxp]<a[i]) *maxp=i;
if(a[*minp]>a[i]) *minp=i;
}
*temp=a[*indexp]; //把最小值与第一个元素交换
a[*indexp]=a[*minp];
a[*minp]=*temp;
*temp=a[*endp]; //把最大值与最后一个元素交换
a[*endp]=a[*maxp];
a[*maxp]=*temp;
free(indexp); //给指针们释放空间
free(endp);
free(maxp);
free(minp);
free(temp);
}