首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中如何返回一个数组回来

2012-03-16 
C语言中怎么返回一个数组回来?譬如:intheartRecord[5][10]{{10,26,67,88,90,95,89,80,55,32},{9,19,64,84

C语言中怎么返回一个数组回来?
譬如:
                  int   heartRecord[5][10]={
{10,26,67,88,90,95,89,80,55,32},
{9,19,64,84,91,96,88,78,66,30},
{13,31,69,87,89,100,88,78,54,24},
{14,22,49,69,87,98,84,69,60,30},
{11,24,45,67,88,100,84,69,54,29},
};
我怎么写一个函数,返回一个数组,存储的是heartRecord中大于某个数的数组??
谢谢告知~

[解决办法]
malloc一块内存,存储结果然后返回。
[解决办法]
传一个数组进去,它就给你把值带回来了.
[解决办法]
1、数组地址做参数带进去

2、用结构体返回
struct MyArray
{
MyType tArray[SIZE];
}

3、new一块内存,然后返回指针,要记得返回后delete释放~
[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int **GetData(int col,int row);
int GetCount(int **data,int col,int row,int num);
int *GetSelt(int **data,int col,int row,int num,int count);

void main (void )
{
int **data;
int *selt;

int col,row,count,maxn;

col=5;row=6;
maxn=55;

data=GetData(col,row);
for(int i=0;i <col;i++)
{
for(int j=0;j <row;j++)
printf( "%d\t ",*(*(data+i)+j));
printf( "\n ");
}

count=GetCount(data,col,row,maxn);

selt=GetSelt(data,col,row,maxn,count);

printf( "=====================%d=====================\n ",maxn);
for(int j=0;j <count;j++)
printf( "%d\t ",selt[j]);

printf( "\n ");
}
//生成数组
int **GetData(int col,int row)
{
int **p=NULL;

srand( (unsigned)time(NULL) );

p=new int*[col];
for(int i=0;i <col;i++)
{
p[i]=new int[row];
for(int j=0;j <row;j++)
*(*(p+i)+j)=rand()%100;
}

return p;
}
//获取大于某数的个数
int GetCount(int **data,int col,int row,int num)
{
int count=0;

for(int i=0;i <col;i++)
for(int j=0;j <row;j++)
if(*(*(data+i)+j)> =num) count++;

return count;
}
//获取数组
int *GetSelt(int **data,int col,int row,int num,int count)
{
int *p=new int[count];
int index=0;

for(int i=0;i <col;i++)
for(int j=0;j <row;j++)
if(*(*(data+i)+j)> =num)
p[index++]=*(*(data+i)+j);

return p;
}

热点排行