| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:求助!指针数组的应用问题,麻烦高手看看 谢谢 呵呵!
只看楼主 加入收藏
clqngw
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-4-17
收藏
 问题点数:0 回复次数:8 
求助!指针数组的应用问题,麻烦高手看看 谢谢 呵呵!
利用指针数组对键盘输入的五个数进行从小到大排序;下面是我写的一段代码,自己感觉上没有错误,编译的时候也没有错误,但一运行问题就来了,刚输入俩数,就不能继续了,麻烦高手路过的时候看一下阿!谢谢了 阿  呵呵

#include<stdio.h>

int main()
{
    int a[5];
    int *p[5];
    int *p1;
    int i,j;
    
    for(i=0;i<5;i++)
    p[i]=&a[i];    
    printf("please input five inttegers:\n");
    
    scanf("%d\n",&a[i]);
    

    for(i=0;i<4;i++)
    {
        for(j=i+1;j<5;j++)
        if(a[i]>a[j])
        {
            p1=p[i];
            p[i]=p[i+1];
            p[i+1]=p1;
        }
    }
    for(i=0;i<5;i++)
        printf("%d\n",*p[i]);
}




经过改正过的代码


//代码1
#include<stdio.h>

int main()
{
    int a[5];
    int *p[5];
    int *p1;
    int i,j;
   
    for(i=0;i<5;i++)
    p[i]=&a[i];   
    printf("please input five inttegers:\n");
    for(i=0;i<5;i++)
    scanf("%d",&a[i]);
   

    for(i=0;i<4;i++)
    {
        for(j=i+1;j<5;j++)
        if(*p[i]>*p[j])
        {
            p1=p[i];
            p[i]=p[j];
            p[j]=p1;
        }
    }

    printf("----------------\n");
    for(i=0;i<5;i++)
        printf("%d  ",*p[i]);
    printf("\n");
}


//代码2
#include<stdio.h>

int main()
{
    int i,j,k;
    int a[5];
    int *p[5];
    for(i=0;i<5;i++)
        p[i]=&a[i];

   
    printf("please input 5 numbers:\n");
    for(i=0;i<5;i++)
    scanf("%d",p[i]);

    for(i=0;i<4;i++)
        for(j=i+1;j<5;j++)
            if(*p[i]>*p[j])
            {
                k=*p[i];
                *p[i]=*p[j];
                *p[j]=k;
            }
            for(i=0;i<5;i++)
                printf("%d  ",*p[i]);
            printf("\n");
}


代码1和代码2均可以很好的完成题目的要求

[[it] 本帖最后由 clqngw 于 2008-6-2 11:35 编辑 [/it]]

[[it] 本帖最后由 clqngw 于 2008-6-2 11:36 编辑 [/it]]
搜索更多相关主题的帖子: 指针 麻烦 应用 
2008-06-01 17:11
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
for(i=0;i<5;i++)
    p[i]=&a[i];   
    printf("please input five inttegers:\n");
   
    scanf("%d\n",&a[i]);

这个是什么啊?乱七八糟的。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-06-01 17:27
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
是啊,乱。有直路不走,偏偏走弯道。

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-01 18:10
zoucan520
该用户已被删除
收藏
得分:0 
你写得真的很乱...新手吧!
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-02 00:05
clqngw
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-4-17
收藏
得分:0 
回复 4# zoucan520 的帖子
多谢指点,我刚刚自己重新写的,如下,麻烦看看是不是好点了

/*利用指针数组对键盘输入的五个整数进行从小到大排序*/

#include<stdio.h>

int main()
{
    int i,j,k;
    int a[5];
    int *p[5];
    for(i=0;i<5;i++)
        p[i]=&a[i];

   
    printf("please input 5 numbers:\n");
    for(i=0;i<5;i++)
    scanf("%d",p[i]);

    for(i=0;i<4;i++)
        for(j=i+1;j<5;j++)
            if(*p[i]>*p[j])
            {
                k=*p[i];
                *p[i]=*p[j];
                *p[j]=k;
            }
            for(i=0;i<5;i++)
                printf("%d  ",*p[i]);
            printf("\n");
}
2008-06-02 11:14
lyboy
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-02 11:27
zoucan520
该用户已被删除
收藏
得分:0 
不会吧、、
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-02 17:47
wish_rain
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2008-4-4
收藏
得分:0 
四楼交换地址
五楼交换数值
楼主是在练习指针的用法吧

走在他人背后,看到的就只是一个背影,
走在他人前面,才能占尽先机
2008-06-02 18:14
wuyufeixue
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-8-10
收藏
得分:0 
为什么要用指针数组呢??这不是自找麻烦吗??
2008-06-02 18:15
快速回复:求助!指针数组的应用问题,麻烦高手看看 谢谢 呵呵!
数据加载中...
 
   



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

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