C语言中怎么返回一个数组回来
1个回答
展开全部
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询