| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:关于指针的问题,求教
只看楼主 加入收藏
情书致塞若
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-6-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
关于指针的问题,求教
要求用调用函数和指针找出一维数组中的最大值并在主函数中输出,我只写出了调用函数找出了最大值,不会用指针,
#include "stdio.h"
int zql(int a[],int n)
{
    int i,t=0;
    for(i=0;i<n;i++)
        if(a[i]>t)
            t=a[i];
    return t;
}
int main()
{
    int a[5]={1,2,3,4,5},i;
    i=zql(a,5);
    printf("%d",i);
}
搜索更多相关主题的帖子: 最大值 return include 
2015-06-02 16:45
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:7 
int zql(int *a,int n)
{
    int t=*a,i=0;
    while(i<n){
        if(*(a+i)>t)
            t=*(a+i);
        i++;
    }
    return t;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 16:56
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:7 
高人,这么快赶出来!帮我也看看我的嘛!
2015-06-02 16:57
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:7 
程序代码:
#include "stdio.h"
int zql(int *a,int n)
{
    int i,t=*a;
    for(i=0;i<n;i++)
    {
        if(t<(*a+i))
        {
            t=*(a+i);
        }
    }
    return t;
}
int main()
{
    int a[5]={1,2,3,4,5},i;
    i=zql(a,5);
    printf("%d",i);
   

    return 0;
} 
2015-06-02 21:21
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
一个加强指针版本:
程序代码:
#include <stdio.h>
#define SIZE 5

void show_arr(const *arr, int n);
int xql(const int *arr, int n);

int main(void)
{
    int a[SIZE]={1,2,5,4,3};
    int max;
   

    printf("这个数组中的元素分别是:");
    show_arr(a,SIZE);
    printf("最大的元素值是:");
    max=zql(a,SIZE);
    printf("%d\n",max);
   

    return 0;
}


int zql(const int *arr,int n)
{
    int i,tem=*arr;
   

    for(i=0;i<n;i++)
    {
        if(tem<(*arr+i))
        {
            tem=*(arr+i);
        }
    }
    return tem;
}

void show_arr(const int *arr, int n)
{
    int i;

    for(i=0;i<n;i++)
    {
        printf("%d ",*(arr+i));
    }
    printf("\n");
}

2015-06-02 21:35
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 hjx1120
目测只能处理整型数组,如果重写一下自定义函数可以处理浮点双精度就更好了

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 21:56
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 6楼 林月儿
额~!我重写成double结果编译器给了我一句 previous implicit declaration of 'zql' was here
2015-06-02 22:23
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 7楼 hjx1120
请把代码贴上来让我看看

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 22:24
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 8楼 林月儿
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define SIZE 5

void show_arr(const double *arr, int n);
double xql(const double *arr, int n);

int main(void)
{
    double a[SIZE]={1.1,2.2,5.5,4.4,3.3};
    double max;
  


    printf("这个数组中的元素分别是:");
    show_arr(a,SIZE);
    printf("最大的元素值是:");
    max=zql(a,SIZE);
    printf("%g\n",max);

    return 0;
}


double zql(const double *arr,int n)//这里改成int zql(const double *arr,int n)没事,是因为精度问题嘛?
{
    int i;
    double tem=*arr;
  

    for(i=0;i<n;i++)
    {
        if(tem<(*arr+i))
        {
            tem=*(arr+i);
        }
    }
    return tem;
}

void show_arr(const double *arr, int n)
{
    int i;

    for(i=0;i<n;i++)
    {
        printf("%g ",*(arr+i));
    }
    printf("\n");
}
2015-06-02 22:51
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 9楼 hjx1120
改成并存方便一点,毕竟是重写
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define SIZE 5
double zql(const double *arr,int n){//这里改成int zql(const double *arr,int n)没事,是因为精度问题嘛?
    int i;
    double tem=*arr;
    for(i=0;i<n;i++){
        if(tem<(*arr+i))
            tem=*(arr+i);
    }
    return tem;
}
void show_arr(const double *arr, int n){
    int i;
    for(i=0;i<n;i++)
        printf("%g ",*(arr+i));
    printf("\n");
}  
int zql(const int *arr,int n){
    int i,tem=*arr;
    for(i=0;i<n;i++){
        if(tem<(*arr+i))
            tem=*(arr+i);
        
    }
    return tem;
}

void show_arr(const int *arr, int n){
    int i;
    for(i=0;i<n;i++){
        printf("%d ",*(arr+i));
    }
    printf("\n");
}

int main(void){
    double a[SIZE]={1.1,2.2,5.5,4.4,3.3};
    double max;
    printf("这个数组中的元素分别是:");
    show_arr(a,SIZE);
    printf("最大的元素值是:");
    max=zql(a,SIZE);
    printf("%.2lf\n",max);
    ////////////////////////////////////////
    int b[SIZE]={1,2,5,4,3};
    int maxb; 
    printf("这个数组中的元素分别是:");
    show_arr(b,SIZE);
    printf("最大的元素值是:");
    maxb=zql(b,SIZE);
    printf("%d\n",maxb);
    return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-03 07:38
快速回复:关于指针的问题,求教
数据加载中...
 
   



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

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