| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1192 人关注过本帖
标题:学到指针!bang忙砍砍这个错误程序!
只看楼主 加入收藏
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
错的错的,刚发的
2011-03-23 22:48
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
#include<stdio.h>
int compare(int ar[]);
int main(void)
{
    int a;
    int ar[5]={8,10,52,1,4};
    a=compare(ar);
    printf("%d",a);
    return 0;
   
}
int compare(int ar[])// 函数的功能是返回int数组中存储数的最大值
{
    int i,j,temp;
    int*ptr=ar;
    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 23:08
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:5 
你没搞懂什么是冒泡排序法,看看我的程序,希望对你有帮助。
程序代码:
#include"stdio.h"
int compare(int *ptr);
int main(void)
{
    int a,k;
    int ar[5]={8,4,9,5,10};
    a=compare(ar);
    printf("%d",a);
    return 0;
    
}
int compare(int *ptr)
{
    int i,j,temp;
    for(j=0;j<5;j++)
    {
        for(i=0;i<5;i++)
        {
        if(*(ptr+j)>*(ptr+i))
            {
            temp=*(ptr+i);
            *(ptr+i)=*(ptr+j);
            *(ptr+j)=temp;
            }
        }
    }
    return *(ptr);
}



[ 本帖最后由 chenwei435 于 2011-3-23 23:27 编辑 ]
2011-03-23 23:21
c_panda
Rank: 2
等 级:论坛游民
帖 子:7
专家分:39
注 册:2010-7-21
收藏
得分: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=0;i<5;i++)
    {
    if(*(ptr+i)>*(ptr+i+1))//参考冒泡法de,大概这里出错了吧!
    {
        temp=*(ptr+i);   //your swap error
        *(ptr+i)=*(ptr+i+1);
        *(ptr+i+1)=temp;  
    }
    }
    return *(ptr+i);  //your return overflow, finally,i = 4
}
2011-03-24 11:26
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 10楼 世界模型
谢啦!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-24 13:13
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 13楼 chenwei435
确实还不是很懂,在努力复习!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-24 13:14
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 8楼 世界模型
我百度回来的
当然有区别
#include   "stdio.h "
当要调用某个函数时
先在用户自已编写的文件中查找,如果找不到再到库文件里去找,
而#include   <stdio.h>  是直接到库文件里去找

所以如果是调用自己写的函数的话就用#include   "stdio.h ",这种形式
而调用标准库函数的话就用#include   <stdio.h> 这种形式,可以提高速度


看看!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-24 13:16
dimer
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2010-5-27
收藏
得分:0 
#include<stdio.h>

int compare(int* p)
{
    int i;
    for (i=0; i<5; ++i)
    {
        if(*(p+i) > *(p+i+1)) *(p+i+1)=*(p+i);
    }
    return *(p+i);
}

int main(void)
{
    int a;
    int ar[5]={8,4,50,5,10};
    a = compare (ar);
    printf("%d\n", a);
    return 0;
}

[ 本帖最后由 dimer 于 2011-3-24 15:38 编辑 ]
2011-03-24 15:31
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:5 
回复 17楼 liangjinchao
呵呵,谢谢哈,
我们共同进步呀
2011-03-24 16:55
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 13楼 chenwei435
你这种方法不是冒泡排序吧!应该是属于交换排序的一种!(当然,冒泡排序也是交换排序的一种!)

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-24 18:59
快速回复:学到指针!bang忙砍砍这个错误程序!
数据加载中...
 
   



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

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