| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 671 人关注过本帖
标题:认真思考过了,但还是解决不了,关于指针的
只看楼主 加入收藏
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
认真思考过了,但还是解决不了,关于指针的
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

#include "stdafx.h"
#include<stdio.h>

void intput(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;//将大数地址赋给max
        else
        {
            if(*p<*min)min=p;//将小数地址赋给min
        }
    }
    temp=number[0];//将最小数与第一大数对换
    number[0]=*min;
    *min=temp;
    if(max=number)//如果第一个数刚好等于最大数(这里怎么用了赋值号,不是应该是等于号吗。指针也允许这样比较??)
    {
        max=min;//则使max仍指向该最大数(这样如何能使max指向该最大数??)
    }
    temp=number[9];//将最小数与第一数交换
    number[9]=*max;
    *max=temp;
}

void output(int number[])
{
    int *p;
    printf("Now,they are:");
    for(p=number;p<number+9;p++)
    {
        printf("%d",*p);
    }
    printf("\n");
}

int main(int argc, char* argv[])
{
    int number[10];
    intput(number);
    max_min_value(number);
    output(number);
    return 0;
}
大家看看,是不是谭老解错了,谢谢!
搜索更多相关主题的帖子: 指针 思考 
2010-08-17 20:09
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:5 
说错了。。。
仔细看了下,outpu里面+9改成加10
然后你说的那个地方应该是==

[ 本帖最后由 毕业旅行 于 2010-8-17 20:47 编辑 ]
2010-08-17 20:25
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
收藏
得分:0 
不明白
2010-08-17 20:31
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
收藏
得分:0 
回复 2楼 毕业旅行
刚才按你说的做了,果然行了!不过还有一个问题,就是max==number表示的是什么意思呢,是max和number的值相等,还是它们指向的对象相等。指针也能相比较吗?怎么谭老的书没提到??
2010-08-17 21:14
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
收藏
得分:0 
不明白, max_min_value(number);这函数执行后返回Void,output(number);还能用到吗?
2010-08-17 21:35
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
收藏
得分:0 
我试运行了一下,根本没有打印结果
2010-08-17 21:38
maquanjiang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-8
收藏
得分:0 
“毕业旅行”说的没错,如果你用TC运行就得去掉第一行。
2010-08-17 21:44
maquanjiang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-8
收藏
得分:0 
max==number语句,指针位置相等,也就是它们同时指向同一数。
2010-08-17 21:49
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
收藏
得分:0 
回复 6楼 真我
有打印结果的啊
2010-08-17 21:53
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:0 
以下是引用max668在2010-8-17 21:14:16的发言:

刚才按你说的做了,果然行了!不过还有一个问题,就是max==number表示的是什么意思呢,是max和number的值相等,还是它们指向的对象相等。指针也能相比较吗?怎么谭老的书没提到??
地址相同,就是他们的内存上的内容就是所指向的地址,如果内容一样,就说明指向同一个地址。
2010-08-17 22:46
快速回复:认真思考过了,但还是解决不了,关于指针的
数据加载中...
 
   



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

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