| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:那里不对 ?
只看楼主 加入收藏
tyzh19890222
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-8-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
那里不对 ?
程序代码:
#include <stdio.h>
main()
{void sort(int x[],int n);
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)

 scanf("%d",p++);

 p=a;

 sort(p,10);

 for(p=a,i=0;i<10;i++)

 printf("%d",*p++);
}
void sort(int x[],int n)
{int i,j,max,tem;
for(i=0;i<n-2;i++)

 {max=x[i];j=i+1;

 for(;j<n;j++)

 if(max<x[j]){tem=max;max=x[j];x[j]=tem;}

 }    
}

求解 10个 数 从大到小排列
搜索更多相关主题的帖子: color 
2010-08-05 17:34
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:5 
void sort(int x[],int n)
{
    int i,j,max,tem;
    for(i=0;i<n-1;i++)
    {
        j=i+1;
        for(;j<n;j++)
        if(x[i] < x[j])
        {
            tem=x[i];
            x[i]=x[j];
            x[j]=tem;
        }
    }   
}
你的程序不能运行,是因为的在sort函数里用max来代替x[i]了,这样只会改变max里面的值。
2010-08-05 18:29
星舞突击者
Rank: 2
等 级:论坛游民
帖 子:15
专家分:68
注 册:2010-7-30
收藏
得分:5 
代码出现两处错误,你定义的sort出现了两处错误,
程序代码:
void sort(int x[],int n)
{int i,j,max,tem;
for(i=0;i<n-2;i++)(此处应改为i<n-1)
{max=x[i];j=i+1;
for(;j<n;j++)if(max<x[j]){tem=max;max=x[j];x[j]=tem;}(你交换的不是x[i]与x[j],而是max与x[j],如果这样做的话,你的x[i]并没有与x[j]交换的机会,这样做岂不是违背了你的初衷)
}   
}
2010-08-05 18:37
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:10 
你到底想用冒泡排序还是选择排序?
冒泡排序时sort()函数应该这样:
程序代码:
void sort(int x[],int n)/*冒泡排序函数*/
{
    int i=0;
    int j=0;
    int tem;/*存放中间变量*/
    for(i=0;i<n-1;i++)
    {
        j=1;
        for(;j<(n-i);j++)
        {
            if(x[j-1]<x[j])/*如果后者小于前者,两者互换*/
            {
                tem=x[j-1];
                x[j-1]=x[j];
                x[j]=tem;
            }
        }
    }   
}
选择排序法:
程序代码:
void sort(int x[],int n)/*选择排序函数*/
{
    int i=0;
    int j=0;
    int mid;
    int *p;
    for(i=0;i<n;i++)
    {
        p=&x[i];
        for(j=(i+1);j<n;j++)
        {
            if(*p<x[j])
                p=&x[j];/*用p 存放最大值的地址*/
        }
        mid=*p;
        *p=x[i];
        x[i]=mid;
    }
}

2010-08-05 19:59
tyzh19890222
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-8-1
收藏
得分:0 
我比较水谢谢大家
2010-08-05 20:21
快速回复:那里不对 ?
数据加载中...
 
   



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

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