重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

子函数二维c语言 c语言子函数是什么意思

c语言 用子函数编辑二维数组的输入 输出 排序 逆序

//December 10,2014 By 12952010

创新互联于2013年开始,是专业互联网技术服务公司,拥有项目成都做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元肇庆做网站,已为上家服务,为肇庆各地企业和个人服务,联系电话:18980820575

#includestdio.h

#define row 3

#define column 3

int sort(int array[][column]){//冒泡排序 

int temp,j,i;

int arr[row*column];

int k=0;

for(i=0; irow; i++)

for( j=0; jcolumn ; j++){

arr[k++]= array[i][j];

}

for(i=0;irow*column-1;i++)

  for(j=0;jrow*column-i-1; j++)

    if(arr[j+1]arr[j]){

     temp=arr[j];

     arr[j]=arr[j+1];

     arr[j+1]=temp;

    }

for(i=0 ,k=0; irow; i++)

for( j=0; jcolumn ; j++){

array[i][j]=arr[k++];

}

}

void show(int array[][column] ){//显示数组元素 

for( int  i=0 ; i row; i++ ) {

printf("\n");

for(int j=0; jcolumn; j++){

printf("  %4d ",array[i][j]);

}

}

}

void display(int array[][column]){//逆序输出

for(int i=row-1;i=0;i--){

printf("\n");

for(int j=column-1;j=0;j--) 

printf("  %4d ",array[i][j]);

}

 

}

void setting(int array[][column]){//初始化数组 

int temp=10;

for( int  i=0; irow; i++ ){

for( int j=0; jcolumn; j++)

array[i][j]=temp--;

}

}

int main(){

int array[row][column];

setting(array);

printf("\n\n-------Befor sort---------\n");

show(array);

printf("\n\n-------逆序输出---------\n");

display(array);

printf("\n\n-------After sort---------\n");

sort(array);

show(array);

return 0;

}

C语言,如何在子函数中写一个3*3二维数组,给主函数调用!!

在子函数申请二维数组,主函数使用,可以用动态申请。

方法不止一种,我这里用指针的指针实现二维数组。

二维数组除了行列,本身地址也是连续的,从第一行第一列的元素地址++,可以取出所有元素。所以我这里先申请了完整的连续地址。

#includestdio.h

#includemalloc.h

int ** sr(void)

{

int i,j;

int *memory=(int *)malloc(sizeof(int)*9);//申请完整的连续内存地址3*3

int **arr=(int **)malloc(sizeof(int*)*3);//申请二维数组行指针数组(也就是二维数组)

if(!memory || !arr){

printf("内存申请错误!\n");return NULL;}

for(i=0,j=0;i9;i+=3)//将连续地址按列数,取出每行首地址,赋值给二维数组元素

arr[j++]=memory[i];

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%d",arr[i][j]);

return arr;

}

int main(void)

{

int i,j,**arr=sr();

if(!arr)

return 1;

printf("---主函数调用子函数定义的二维数组---\n");

for(i=0;i3;i++,printf("\n"))

for(j=0;j3;j++)

printf("%d ",arr[i][j]);

printf("\n---实现二维数组地址连续性---\n");

int *p=arr[0][0];

while(p=arr[2][2])

printf("%d ",*p++);

return 0;

}

c语言中在主函数中定义了一个二维数组,用子函数赋值,再在另一个子函数中调用,如何定义,调用这个数组

传地址进去就好int a【5】;

a就是地址;

#includestdio.h

void output(int *a)

{

int i;

for(i=0;i5;i++)

{

a[i]=i;

}

}

int main()

{

int a[5],j;

output(a);

for(j=0;j5;j++)

{

printf("%d",a[j]);

}

}

c语言问题:主函数中有一个二维数组,调用一个子函数对其赋值,希望通过指针来实现,该怎么做。具体一点

void get_val(int array[][200], int m, int n, int *max, int *min)

{

int i, j;

for(*max = array[0][0], *min= array[0][0], j = 0; j m; j++){

for(i = 0; i n; i++){

if(*max array[j][i]){

*max = array[j][i];

}

if(*min array[j][i]){

*min = array[j][i];

}

}

}

}

int main(int argc, char *argv[])

{

int array_test[100][200];

int j, i, max, min;

for(j = 0; j 100; j++){

for(i = 0; i 200; i++){

array_test[j][i] = i*j;

}

}

get_val(array_test, 100, 200, max, min);

printf("max:%d,min:%d\n",max,min);

}

编译通过并通过测试,另外还可以通过指针传递:

void get_val(int *array, int m, int n, int *max, int *min)

{

int i, j;

for(*max = *array, *min= *array, j = 0; j m; j++){

for(i = 0; i n; i++){

if(*max *(array+j*n+i)){

*max = *(array+j*n+i);

}

if(*min *(array+j*n+i)){

*min = *(array+j*n+i);

}

}

}

}

另外,虚机团上产品团购,超级便宜

如何用子函数的形式动态申请二维数组并调用(C语言)

#include stdio.h

#include stdlib.h

#include malloc.h

#define m 3   /* row */

#define n 4   /* column */

int **creat2d(int mm,int nn);//声明一下子函数

void main()

{

int i,j;

int **s;

s=creat2d(m,n);

for(i=0;im;i++)

{

for(j=0;jn;j++)

{

s[i][j]=i*2+j;//s当做二维数组使用

printf("s[%d][%d]=%d ",i,j,s[i][j]);

}

printf("\n");

}

for(i=0;im;i++)//先free掉m个行指针

{

free(s[i]);

s[i]=NULL;//free之后要置为null,防止野指针

}

free(s);

s=NULL;//防止野指针

}

int **creat2d(int mm,int nn)

{

int **a;

int j;

a=(int**)malloc(sizeof(int*)*mm);//mm个行

for(j=0;jmm;j++)

a[j]=(int*)malloc(sizeof(int*)*nn);//每行nn个数

return a;

}

c语言设计一个子函数,判断二维数组是否是对称数组,如果是,则返回1;如果不是,则返回0,并在主函数

/****************************************************/#include#includetemplateclassisLuanShengSuShu{/*T必须提供operator%,否则编译错误*/public:booloperator()(constTx1,constTx2){//if((x1::max)());}private:boolisSuShu(constTinput){if(inputintmain(intargc,wchar_t*argv[]){isLuanShengSuShux;std::couty;std::cout


文章名称:子函数二维c语言 c语言子函数是什么意思
URL网址:http://cqcxhl.cn/article/hjgiig.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP