| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 562 人关注过本帖
标题:指针问题做参数的问题
只看楼主 加入收藏
迷途的菜鸟
Rank: 2
等 级:论坛游民
帖 子:36
专家分:50
注 册:2012-3-20
结帖率:83.33%
收藏
 问题点数:0 回复次数:3 
指针问题做参数的问题
程序代码:
#include <stdio.h>
#define N 5

void input(int *x, int n);
void sort(int *x, int n);
void print(int *x, int n);
main()
{
    int a[N];
    int *p;
    p = a;
    input(p, N);
    sort(p, N);
    print(p, N);
}

void input(int *x, int n)
{
    int i, c;
    for(i=0; i<n; i++)
    {
        c = getchar();
        *(x+i) = c;
    }
    
}

void sort (int *x, int n)
{
    int i, j, k;
    for (i=0; i<n-1; i++)
    {
        k=i;
        for (j=i+1; j<n; j++)
        {
            if (*(x+i)<*(x+k))
                k = j;
        }
        if (k != i)
        {
            int temp;
            temp = *(x+k);
            *(x+k) = *(x+i);
            *(x+i) = temp;
        }
    }
}

void print(int *x, int n)
{
    int i;
    for (i=0; i<n; i++)
    {
        int c;
        c = *(x+i);
        putchar(c);
    }
}

我若是用数组名作参数,似乎可以实现选择法排序,但我想用指针做,改了之后似乎就不行了!求指教!
2012-06-20 21:31
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
for (i=0; i<n-1; i++)
    {
        k=i;
        for (j=i+1; j<n; j++)
        {
            if (*(x+j)<*(x+k))
                k = j;
        }

我们都在路上。。。。。
2012-06-21 11:54
玉面狂龙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:156
注 册:2012-2-23
收藏
得分:0 
楼上正解
2012-06-21 12:47
迷途的菜鸟
Rank: 2
等 级:论坛游民
帖 子:36
专家分:50
注 册:2012-3-20
收藏
得分:0 
以下是引用hellovfp在2012-6-21 11:54:46的发言:

for (i=0; i<n-1; i++)
    {
        k=i;
        for (j=i+1; j<n; j++)
        {
            if (*(x+j)<*(x+k))
                k = j;
        }

多谢,多谢,这种错误隐蔽的很。。
我想问问,用指针还有其他的办法吗?
2012-06-21 18:08
快速回复:指针问题做参数的问题
数据加载中...
 
   



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

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