| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1192 人关注过本帖
标题:学到指针!bang忙砍砍这个错误程序!
只看楼主 加入收藏
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
结帖率:97.44%
收藏
已结贴  问题点数:20 回复次数:26 
学到指针!bang忙砍砍这个错误程序!

#include"stdio.h"
int compare(int *ptr);
int main(void)
{
    int a;
    int ar[5]={8,4,9,5,10};
    a=compare(ar);
    printf("%d",a);
    return 0;
   
}
int compare(int *ptr)// 函数的功能是返回int数组中存储数的最大值
{
    int i,temp;
    for(i=0;i<5;i++)
    {
    if(*(ptr+i)>*(ptr+i+1))//参考冒泡法de,大概这里出错了吧!
    {
        temp=*(ptr+i+1);
        *(ptr+i)=temp;
        *(ptr+i+1)=*(ptr+i);
            
    }
    }
    return *(ptr+i+1);
}
指针这东西,搞得我头都晕了


[ 本帖最后由 liangjinchao 于 2011-3-23 21:51 编辑 ]
搜索更多相关主题的帖子: 最大值 
2011-03-23 21:49
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
我也在看指针呢

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-23 22:00
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 2楼 ansic
指针这东西,纠结!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-23 22:08
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
//#include"stdio.h"
#include<stdio.h>
int compare(int *ptr);
int main(void)
{
    int a;
    int ar[5]={8,4,9,5,10};
    a=compare(ar);
    printf("%d",a);
    return 0;
   
}
int compare(int *ptr)// 函数的功能是返回int数组中存储数的最大值
{
    int i,temp;
    for(i=0;i<5;i++)
    {
    if(*(ptr+i)>*(ptr+i+1))//参考冒泡法de,大概这里出错了吧!
    {
        temp=*(ptr+i+1);
        *(ptr+i)=temp;
        *(ptr+i+1)=*(ptr+i);
            
    }
    }
    return *ptr+i+1;
}
2011-03-23 22:08
xxbeifeng
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2011-3-22
收藏
得分:0 
程序代码:
#include"stdio.h"

int compare(int *ptr);

int main(void)
{
    int a;
    int ar[5]={8,4,9,5,10};
    a=compare(ar);
    printf("%d",a);
    return 0;
   
}
int compare(int *ptr)// 函数的功能是返回int数组中存储数的最大值
{
    int i,temp;
    for(i=1;i<5;i++)
    {
        if(*(ptr)<*(ptr+i))
        {
            temp=*(ptr+i);
            *(ptr+i)=*(ptr);
            *(ptr)=temp;
        }
   }
    return *ptr;
}
注意你那个交换的方式不对吧 仔细看一下交换成功了么?
此外i=4的时候,ptr+i+1超出数组了
返回最大值我感觉只需要根据打擂的原理,设第一个为最大,如果后面的数比第一个大 交换至最大位即可
2011-03-23 22:13
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
4楼,你写的也是有错误de,你试试改改其中的数据!

[ 本帖最后由 liangjinchao 于 2011-3-23 22:18 编辑 ]

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-23 22:14
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 5楼 xxbeifeng
赐教!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-23 22:18
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
#include<stdio.h>和#include"stdio.h"没什么区别,我比较习惯用第一种
2011-03-23 22:21
xxbeifeng
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2011-3-22
收藏
得分:0 
回复 8楼 世界模型
恩。<>从内置路径开始搜索,""从程序所在的路径进行搜索,如果你编写了自己的头文件,选择""比较好
好像是这样吧
2011-03-23 22:25
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
#include<stdio.h>
int compare(int *ptr);
int main(void)
{
    int a;
    int ar[5]={8,4,50,5,10};
    a=compare(ar);
    printf("%d",a);
    return 0;
   
}
int compare(int *ptr)// 函数的功能是返回int数组中存储数的最大值
{
    int i,j,temp,min;
    for(j=1;j<5;j++)
    {
   
        for(i=1;i<4;i++)
        {
            if(*(ptr)<*(ptr+i))//参考冒泡法de,大概这里出错了吧!
            {   
                temp=*(ptr+i);
                *(ptr+i)=*(ptr);
                *(ptr)=temp;
            }
               
        }
    }
    return *ptr;
}
2011-03-23 22:47
快速回复:学到指针!bang忙砍砍这个错误程序!
数据加载中...
 
   



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

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