| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:帮忙看下错哪了,指针、函数。
只看楼主 加入收藏
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
帮忙看下错哪了,指针、函数。
#include<stdio.h>
void main()
{
    void input(int *);
    void max_min_value(int *);
    void output(int *);
    int number[10];
    input(number);
    max_min_value(number);
    output(number);
}

void input(int number)
{
    int i;
    printf("input 10 numbers:");
    for(i=0;i<10;i++)
        scanf("%d",&number[i]);
}

void max_min_value(int number)
{
    int *max,*min,*p,temp;
    max=min=number;
    for(p=number+1;p<number+10;p++)
        if(*p>*max) max=p;
        else if(*p<*min) min=p;
        temp=number[0];number[0]=*min;*min=temp;
        temp=number[9];number[9]=*max;*max=temp;
}

void output(int number)
{
    int *p;
    printf("they are: ");
    for(p=number;p<number+10;p++)
        printf("%d",*p);
    printf("\n");
}
搜索更多相关主题的帖子: 指针 函数 
2010-05-23 17:18
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:5 
max=min=number;应该为 *max=*min=number;还有循环里面的也有类似的问题,我没有调试,只是看出来这么点


我的博客  http://blog..cn/daocaoren020
2010-05-23 17:21
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:5 
    max=min=number;
    for(p=number+1;p<number+10;p++)
        if(*p>*max) max=p;
        else if(*p<*min) min=p;
这段函数应该改为 :

*max=*min=number;
    for(*p=number+1;*p<number+10;p++)
        if(*p>*max) *max=*p;
        else if(*p<*min) *min=*p;

我的博客  http://blog..cn/daocaoren020
2010-05-23 17:23
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 2楼 ww稻草人
数组名不是代表数组首元素的地址吗,为什么不能用max=min=number呢?我按你说的改了一下,还是不行,麻烦再帮忙看看,谢谢!
2010-05-23 17:49
tfxanxing
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:82
专家分:165
注 册:2010-5-7
收藏
得分:10 

//程序实现没错,就是函数实现是参数忘了带上 * ,下面我有用红色标出,我运行了没错,你再运行试试,


#include<stdio.h>
void main()
{
    void input(int *);
    void max_min_value(int *);
    void output(int *);
    int number[10];
    input(number);
    max_min_value(number);
    output(number);
}

void input(int *number)       //////////////////////////
{
    int i;
    printf("input 10 numbers:");
    for(i=0;i<10;i++)
        scanf("%d",&number[i]);
}

void max_min_value(int *number)                //////////////////////////
{
    int *max,*min,*p,temp;
    max=min=number;
    for(p=number+1;p<number+10;p++)
        if(*p>*max) max=p;
        else if(*p<*min) min=p;
        temp=number[0];number[0]=*min;*min=temp;
        temp=number[9];number[9]=*max;*max=temp;
}

void output(int *number)                    //////////////////////////
{
    int *p;
    printf("they are: ");
    for(p=number;p<number+10;p++)
        printf("%d",*p);
    printf("\n");
}
2010-05-23 21:05
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 5楼 tfxanxing
谢谢!
2010-05-23 21:24
快速回复:帮忙看下错哪了,指针、函数。
数据加载中...
 
   



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

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