#include<stdio.h>//1. 输入十个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求写三个函数:输入十个数 ;数据处理;输出十个数
int main()
{
void cmax(int *x,int n);
void cmin(int *x,int n);
int a[10],p,i;
p=a;
printf("please enter 10 numbers:");
for(i=0;i<10;i++)
{scanf("%d,",p++);}
cmax(a,10);
cmin(a,10);
for(i=0;i<10;i++)
{printf("%d\t",(p+i));}
return 0;
}
void cmax(int x,int n)
{
int i,j=0,max=0;
max=(x+9);
for(i=0;i<10;i++)
{
if((x+i)>max)
max=(x+i);
j=i;
}
max=*x;
x=(x+j);
*(x+j)=max;
}
void cmin(int x,int n)
{
int i,j=0,min=0;
min=x;
for(i=0;i<10;i++)
{
if((x+i)<min)
min=(x+i);
j=i;
}
min=*x;
x=(x+j);
*(x+j)=min;
}
修改了一下,如下:
#include <stdio.h>
int main()
{
void cmax(int *x,int n);
void cmin(int *x,int n);
int a[10],* p,i;
printf("please enter 10 numbers:");
for(i=0;i<10;i++)
{
scanf("%d,",&a[i]);
}
cmax(a,10);
cmin(a,10);
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void cmax(int * x,int n)
{
int i,j=0,max=0;
max=*(x+9);
for(i=0;i<n;i++)
{
if(*(x+i)>max){
max=*(x+i);
j=i;
}
}
*(x+j) = *(x+9);
*(x+9) = max;
}
void cmin(int* x,int n)
{
int i,j=0,min=0;
min=*x;
for(i=0;i<n;i++)
{
if(*(x+i)<min){
min=*(x+i);
j=i;
}
}
*(x+j) = *x;
*x = min;
}