函数结果的带出方式
程序代码:#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int max, min;
}Data;
int MIN; /*全局变量*/
int fun1(int a[],int n)
/*通过函数return返回最大值,通过全局变量MIN待会最小值*/
{
int i, max;
max = MIN = a[0]; //给最大、最小值赋初值
for(i=0;i<n;i++)
{
if (a[i]>max) max = a[i];
if (a[i]<MIN) MIN = a[i];
}
return(max);
}
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)
/*将最大值、最小值放到结构体指针p中,通过return返回*/
{
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];
if(a[i] < p->min)
p->min=a[i];
}
return (p);
}
Data fun4(int a[],int i)
/*将最大、最小值放到结构体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)
/*用指针带回返回值,指针p指向最大值,指针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,3,9,8,4,2,5,0,7,6},max,*p;
Data *q;
Data z;
int *x,*y;
x = (int * )malloc(sizeof(int * ));
y = (int * )malloc(sizeof(int * ));
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);
}







得瑟