数据结构(第三周)
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int max,min;
}Data;
int MIN;//通过函数返回最大值,通过全局变量MIN带回最小值
int fun1(int a[],int n){
int i,max;
max=MIN=a[0];
for(i=1;i<n;i++){
if(a[i]>max)
max=a[i];
if(a[i]<MIN)
MIN=a[i];
}
return(max);
}//表示函数fun()的返回值类型是指向int类型的指针。
int *fun2(int a[],int n){//将最大值和最小值放到数组b中,通过return返回
static int b[2];
b[0]=b[1]=a[0];
int i;
for(i=1;i<n;i++){
if(a[i]>b[0])
b[0]=a[i];//最大值
if(a[i]<b[1])
b[1]=a[i];
}
return (b);
}
Data *fun3(int a[],int n){//返回data类型的指针
//将最大值、最小值放到结构体中,通过return返回结构体指针*p
Data *p;
int i;
p=(Data*)malloc(sizeof(Data));//指针初始化
p->max=p->min=a[0];
for(i=1;i<n;i++){
if (a[i]>p->max)
p->max=a[i];}
return(p);
}
Data fun4(int a[],int n){//将最大值、最小值放到结构体p中,通过结构体p带回返回值
Data p;
int i;
p.max=p.min=a[0];
for(i=1;i<n;i++){
if(a[i]>p.max)
p.max=a[i];
if(a[i]<p.min)
p.min=a[i];
}
return(p);
}
void fun5(int a[],int n,int *p,int *q){
int i;
*p=*q=a[0];
for(i=1;i<n;i++){
if(*p<a[i])
*p=a[i];
if(*q>a[i])
*q=a[i];
}
}
void main(){
int a[10]={1,2,3,4,5,6,7,8,9};
int max,*p;
Data *q;
Data z;
int x,y;
max=fun1(a,10);
printf("max=%d min=%d\n",max,MIN);
p=fun2(a,10);
printf("max=%d min=%d\n",p[0],p[1]);
q=fun3(a,10);
printf("max=%d min=%d\n",q->max,q->min);
z=fun4(a,10);
printf("max=%d min=%d\n",z.max,z.min);
fun5(a,10,&x,&y);
printf("max=%d min=%d\n",x,y);
}