| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:程序不知道哪里写错了
只看楼主 加入收藏
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
程序不知道哪里写错了
#include"stdio.h"
int str(int *p,int n)
{
    int *j,*k,temp;
    for(;p<p+n;p++)
    {
        k=p;
        for(j=p+1;j<p+n;j++)
            if(*k>*j)
            k=j;
            if(k!=p)
            {
                temp=*p;
                *p=*j;
                *j=temp;
            }
    }
    return 0;
}

main(void)
{
    int a[10]={4,3,6,2,1,7,8,0,9,5},*p,i;
    p=a;
    while(p<a+10)
        printf("%d  ",*p++);
    puts("\n");
    p=a;
    str(p,10);
    for(p=a;p<a+10;)
        printf("%d  ",*p++);
    getch();
    return 0;
}
搜索更多相关主题的帖子: void include return 
2010-03-26 22:43
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:0 
出什么问题了啊

坚持做对的事情,而不是容易的事情。
2010-03-26 22:48
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:0 
运行结果不正确呀,调试了半天都不对,郁闷........
2010-03-26 22:52
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:5 
int str(int *p,int n)
{
    int *i,*j,*k,temp;
    for(i=p;i<p+n;i++)
    {
        k=i;
        for(j=i+1;j<p+n;j++)
            if(*k>*j)
                k=j;
            if(k!=i)
            {
                temp=*i;
                *i=*k;
                *k=temp;
            }
    }
    return 0;
}
2010-03-26 22:58
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:0 
以下是引用ldg628在2010-3-26 22:58:13的发言:

int str(int *p,int n)
{
    int *i,*j,*k,temp;
    for(i=p;i<p+n;i++)
    {
        k=i;
        for(j=i+1;j<p+n;j++)
            if(*k>*j)
                k=j;
            if(k!=i)
            {
     ...
为什么要多引进一个i

坚持做对的事情,而不是容易的事情。
2010-03-26 23:04
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:10 
回复 5楼 一口三个汉堡
按着LZ思路走,不引进也行
int str(int *p,int n)
{
    int *i,*j;
    for(i=p;i<p+n;i++)
    {
        for(j=i+1;j<p+n;j++)
        {
            if (*j < *i)
            {
                *j = *i + *j;
                *i = *j - *i;
                *j = *j - *i;
            }
        }
    }
    return 0;
}

2010-03-26 23:13
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:0 
谢谢4楼,明白了........
2010-03-26 23:15
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:0 
以下是引用ldg628在2010-3-26 23:13:04的发言:

按着LZ思路走,不引进也行
int str(int *p,int n)
{
    int *i,*j;
    for(i=p;i<p+n;i++)
    {
        for(j=i+1;j<p+n;j++)
        {
            if (*j < *i)
            {
                *j = *i + *j; ...
那三个交换是什么意思?
2010-03-26 23:18
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:0 
if (*j < *i)
            {
                *j = *i + *j;
                *i = *j - *i;
                *j = *j - *i;
            }
如果*j<*i,就把小的数给*i,大的数给*j.
但是我还是不知道,楼主的代码哪里出现错误了。。。
我还要思考思考。。。。。
 

[ 本帖最后由 一口三个汉堡 于 2010-3-26 23:25 编辑 ]

坚持做对的事情,而不是容易的事情。
2010-03-26 23:22
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:0 
if (*j < *i)
            {
                *j = *i + *j;
                *i = *j - *i;
                *j = *j - *i;
            }
没弄明白括号里面的*i+*j; *j - *i; *j - *i;j 是什么意思,为什么这样写?
2010-03-26 23:27
快速回复:程序不知道哪里写错了
数据加载中...
 
   



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

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