标题:使用指针数组对输入的三个整数序列(每个序列5个整数)分别从小到大进行排序
只看楼主
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
结帖率:73.96%
已结贴  问题点数:5 回复次数:10 
使用指针数组对输入的三个整数序列(每个序列5个整数)分别从小到大进行排序
使用指针数组对输入的三个整数序列(每个序列5个整数)分别从小到大进行排序
搜索更多相关主题的帖子: 序列 从小到大 输入 指针 整数 
2010-03-14 12:47
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:1 
#include <stdio.h>

void main()
{
    int a[3][5];
    int *p[3] = {a[0], a[1], a[2]};
    int i, j, k, y;
    int min, temp;
         

    for(i = 0; i<3; i++)
    {
        printf("Please input five numbers:");
        for(j = 0; j<5; j++)
            scanf("%d",*(p+i)+j);
    }

    for(i = 0; i< 3; i++)
        for(j = 0; j< 5; j++)
        {
            min = *(*(p+i)+j);
            for(k = i; k< 3; k++)
            {
                if(k == i)
                    for(y = j; y< 5; y++)
                        if(min > *(*(p+k)+y))
                        {
                            temp = *(*(p+k)+y);
                            *(*(p+k)+y) = min;
                            min = temp;
                        }
                if(k != i)
                    for(y = 0; y< 5; y++)
                        if(min > *(*(p+k)+y))
                        {
                            temp = *(*(p+k)+y);
                            *(*(p+k)+y) = min;
                            min = temp;
                        }
            }
            *(*(p+i)+j) = min;
        }
    for(i = 0; i<3; i++)
        for(j = 0; j<5; j++)
            printf("%d ",*(*(p+i)+j));
}
2010-03-14 15:58
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
得分:2 
程序代码:
# include <stdio.h>

int main(void)
{
    int a[3][5];
    int * p[3] = {a[0], a[1], a[2]};
    int i, j, t,tmp;

    //输入数据
    for (i=0; i<3; i++)
    {
        printf("第 %d 组数据:\n", i+1);
        for (j=0; j<5; j++)
        {
            printf("第 %d 个数据:", j+1);
            scanf("%d", *(p+i)+j);
        }
       
        printf("\n");
    }

    //冒泡排序
    for (i=0; i<3; i++)
    {
        for (j=0; j<4; j++)
        {
            for (t=0; t<4; t++)
            {
                if ( (*(*(p+i)+t)) < (*(*(p+i)+t+1)) )
                {
                    tmp = *(*(p+i)+t);
                    *(*(p+i)+t) = *(*(p+i)+t+1);
                    *(*(p+i)+t+1) = tmp;
                }
            }
        }
    }

    //输出数据
    for (i=0; i<3; i++)
    {
        printf("第 %d 组数据:\n", i+1);
        for (j=0; j<5; j++)
        {
            printf("%d ", *(*(p+i)+j));
        }
       
        printf("\n");
    }
    return 0;
}


对各列分别排序


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-14 18:05
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
得分:0 
3楼的不错

Discuz!  
好好学习  天天向上
2010-03-14 18:20
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
得分:0 
三楼的有错误啊 编译不通过

Discuz!  
好好学习  天天向上
2010-03-14 18:25
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
得分:2 
回复 5楼 qq8801103
编译不通过?有啥错误?我在VC6下编译通过呀。是不没把代码COPY完整呀?

learn.rar (31.56 KB)


[ 本帖最后由 lixnkei 于 2010-3-14 19:12 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-14 19:08
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
得分:0 
我用的是tc  能否用tc写个 谢谢

Discuz!  
好好学习  天天向上
2010-03-14 19:12
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
得分:0 
程序代码:
# include <stdio.h>
# include <stdlib.h>

int main(void)
{
    int a[3][5];
    int i;
    int j;
    int t;
    int tmp;
    int * p[3];
    p[0] = a[0];
    p[1] = a[1];
    p[2] = a[2];

    /*输入数据*/
    for (i=0; i<3; i++)
    {
        printf("第 %d 组数据:\n", i+1);
        for (j=0; j<5; j++)
        {
            printf("第 %d 个数据:", j+1);
            scanf("%d", *(p+i)+j);
        }
       
        printf("\n");
    }
   
    /*冒泡排序*/
    for (i=0; i<3; i++)
    {
        for (j=0; j<4; j++)
        {
            for (t=0; t<4; t++)
            {
                if ( (*(*(p+i)+t)) < (*(*(p+i)+t+1)) )
                {
                    tmp = *(*(p+i)+t);
                    *(*(p+i)+t) = *(*(p+i)+t+1);
                    *(*(p+i)+t+1) = tmp;
                }
            }
        }
    }
   
    /*输出数据*/
    for (i=0; i<3; i++)
    {
        printf("第 %d 组数据:\n", i+1);
        for (j=0; j<5; j++)
        {
            printf("%d ", *(*(p+i)+j));
        }
       
        printf("\n");
    }

    getch();

    return 0;
}


个人建议不要用TC啦。根本不是什么错误。。。分开写就没提示错误了。(我们老师都叫我们不要用TC了,经常有些莫名其妙的错误)

另外,出现错误要多学学自己找原因呀。


PS:中文提示信息自己改成英文吧,TC对中文出现乱码,我懒得改了。

[ 本帖最后由 lixnkei 于 2010-3-14 19:27 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-14 19:25
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
得分:0 
运行结果不对

Discuz!  
好好学习  天天向上
2010-03-14 19:38
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
得分:0 
回复 9楼 qq8801103
无标题.rar (56.42 KB)


你的运行结果是这样的吗?


PS:大哥,你好歹也载个图或者把你编译出来的程序发上来让我瞧瞧呀。只说一句“结果不对”,哪儿不对呀。我可没那么神,能猜想到你的机器的运行结果。我的代码是测试过才发上来的呀。





[ 本帖最后由 lixnkei 于 2010-3-14 20:04 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-14 19:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-299378-1-1.html




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

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