| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:函数结果的带出方式
只看楼主 加入收藏
y515382
Rank: 2
等 级:论坛游民
帖 子:38
专家分:16
注 册:2011-7-9
结帖率:100%
收藏
 问题点数:0 回复次数:1 
函数结果的带出方式
程序代码:
#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);
}
2011-08-17 22:27
y515382
Rank: 2
等 级:论坛游民
帖 子:38
专家分:16
注 册:2011-7-9
收藏
得分:0 
得瑟
2011-08-17 22:28
快速回复:函数结果的带出方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017762 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved