数据结构(第三周)

#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);
}
数据结构(第三周)

 数据结构(第三周)

相关推荐