标题:2维数组如何存储到1维数组中
取消只看楼主
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
结帖率:76.47%
已结贴  问题点数:20 回复次数:1 
2维数组如何存储到1维数组中
#include <stdio.h>
void change(int a[],int n);
void main()
{
    int i,j,(*b)[5],*p;
    int a[5][5]={34,35,57,32,12,46,768,67,98,54,43,87,96,54,778,89,4,345,656,7,767,45,656,767,3};
    b=a;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            p=*(b+i)+j;
    change(p,25);
    for(i=0;i<25;i++)
    printf("%d\n",*(p+i));
}
void change(int a[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(a+j)<*(a+k))k=j;
if(k!=i){temp=*(a+k);*(a+k)=*(a+i);*(a+i)=temp;}
}
}

我本意是想把2维数组排序,可是不会写2维数组排序的程序...就写了个1维数组的排序,想把2维数组存到1维数组里排,可是程序运行不了,能帮我看看哪错了吗?

[ 本帖最后由 caochuan2000 于 2009-8-18 18:02 编辑 ]
搜索更多相关主题的帖子: change 
2009-08-18 17:58
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
得分:0 
谢谢3楼!!
经过你的启发,我把程序了下就能正常运行了

#include <stdio.h>
void change(int a[],int n);
void main()
{
    int i,j,*p;
    int a[5][5]={34,35,57,32,12,46,768,67,98,54,43,87,96,54,778,89,4,345,656,7,767,45,656,767,3};
    p=&a[0][0];
    change(p,25);
    for(i=0;i<5;i++)
    for(j=0;j<5;j++)
    printf("%d\n",a[i][j]);
}
void change(int a[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(a+j)<*(a+k))k=j;
if(k!=i){temp=*(a+k);*(a+k)=*(a+i);*(a+i)=temp;}
}
}
2009-08-18 18:42



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




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

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