| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 946 人关注过本帖
标题:二维数组怎么传递?(吊桶排序)
只看楼主 加入收藏
寂寞的天空
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-12-22
收藏
 问题点数:0 回复次数:2 
二维数组怎么传递?(吊桶排序)
自己写的吊桶排序,只要是指针表示的二维数组全部错误,怎么改才是正确的?鄙人菜鸟.请各位赐教.


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define SIZE 1000

void print(int *ptr, int size);
void sort(int *ptr, int size, int midpos);
void copydata(int *ptr, int *ptr2, int size);
void cl_bucket(int *ptr2, int size);
int No_mid(int a, int midpos);
int No_len(int *ptr, int size);

main()
{
int array[SIZE];
int length, count;
srand(time(NULL));

for(count=0;count<=SIZE-1;count++)
array[count]=rand()%10000;
print(&array[0],SIZE);

length=No_len(&array[0],SIZE);

for(count=1;count<=length;count++)
   sort(&array[0],SIZE,count);
print(&array[0],SIZE);
system("pause");
}

void print(int *ptr, int size)
{
int i;
for(i=0;i<=size-1;i++)
   {
    printf("6%d",*(ptr+i));
     if((i+1)%10==0)
      printf("\n");
   }
printf("\n\n");
}


void sort(int *ptr, int size, int midpos)
{
int bucket[10][size];
int count, x=0, y=0;

for(count=0;count<=size-1;count++)
{
   x=No_mid(*(ptr+count),midpos);
    while(bucket[x][y])
     {y+=1;}
    bucket[x][y]=*(ptr+count);
}
cppydata(ptr,&bucket[0][0],size);
cl_bucket(&bucket[0][0],size);
}

void copydata(int *ptr, int *ptr2, int size)
{
int i, j, k=0, temp;

for(i=0;i<=9;i++)
   for(j=0;j<=size-1;j++)
    {
     if(*(*(ptr2+i)+j))     /*invalid type argument of `unary*/
      {
       temp=*(*(ptr2+i)+j);     /*invalid type argument of `unary*/
       *(ptr+k)=temp;
     k+=1;}
    }
}

void cl_bucket(int *ptr2, int size)
{
int x, y;
for(x=0;x<=9;x++)
   for(y=0;y<=size-1;y++)
    *(*(ptr2+x)+y)=0;      /*invalid type argument of `unary*/
}

int No_mid(int a, int midpos)
{
return (a/(int)pow(10,midpos-1))%10;
}     

int No_len(int *ptr, int size)
{
int max=0, i, j;
for(i=0;i<=size-1;i++)
   {
    if(max<*(ptr+i))
     max=*(ptr+i);
   }
   i=0;
while(j)
{
   j=max/(int)pow(10,i);
   i+=1;
}
return i;}
搜索更多相关主题的帖子: void ptr 吊桶 int include 
2007-12-22 19:31
灭火的风
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
比如int a[5][7];这样一个2维数组,传递给一个函数的时候可以这样写函数的参数表:
void Fnunction(int (* array)[7])
{
    ....
}
2007-12-22 22:46
寂寞的天空
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-12-22
收藏
得分:0 
为什么要给出"7"?
2007-12-23 13:44
快速回复:二维数组怎么传递?(吊桶排序)
数据加载中...
 
   



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

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