真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

函數(shù)創(chuàng)建二維數(shù)組C語言 函數(shù)創(chuàng)建二維數(shù)組c語言怎么寫

C語言編程,如何自動生成一個二維數(shù)組

程序主要通過malloc函數(shù)動態(tài)生成數(shù)組,srand和rand函數(shù)配合生成隨機(jī)數(shù)據(jù),代碼如下,

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、北流網(wǎng)絡(luò)推廣、微信平臺小程序開發(fā)、北流網(wǎng)絡(luò)營銷、北流企業(yè)策劃、北流品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供北流建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

//程序功能,實(shí)現(xiàn)自定義m*n二維數(shù)組,隨機(jī)生成給定范圍max-min的數(shù)組元素

#includestdio.h

#include stdlib.h

#include time.h

void main()

{

int i=0,j=0;

int m=0,n=0;//數(shù)組維數(shù)

int max=0,min=0;//數(shù)組數(shù)據(jù)范圍

int **p=NULL;//二維指針,存放m*n個元素

int tmp;

printf("請輸入數(shù)組維數(shù)m和n:");

scanf("%d %d",m,n);

printf("請輸入數(shù)組元素最大最小值max和min:");

scanf("%d %d",max,min);

if(maxmin)//保證max大于min

{

tmp=max;

max=min;

min=max;

}

p=(int**)malloc(m*sizeof(int*));//先分配m個一維指針

if(NULL==p)

exit(1);

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

{

p[i] = (int*)malloc(n*sizeof(int));//為m個一維指針分配n個整型大小的空間

if (NULL==p[i])

exit(1);

}

srand(time(NULL));

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

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

p[i][j]=rand()%(max-min+1)+min;

printf("%d*%d二維數(shù)組為:\n",m,n);

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

{

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

printf("%d\t",p[i][j]);

printf("\n");

}

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

{

free(p[i]);

p[i]=NULL;

}

free(p);

p=NULL;

}

void *malloc( size_t size );如果分配成功則返回指向被分配內(nèi)存的指針,指針指向一個大小為size的內(nèi)存空間;如果錯誤發(fā)生返回NULL。

一般srand和rand配合使用產(chǎn)生偽隨機(jī)數(shù)序列。rand函數(shù)在產(chǎn)生隨機(jī)數(shù)前,需要系統(tǒng)提供的生成偽隨機(jī)數(shù)序列的種子,rand根據(jù)這個種子的值產(chǎn)生一系列隨機(jī)數(shù)。如果系統(tǒng)提供的種子沒有變化,每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列都是一樣的。srand(unsigned seed)通過參數(shù)seed改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。通??梢岳孟到y(tǒng)時間來改變系統(tǒng)的種子值,即srand(time(NULL)),可以為rand函數(shù)提供不同的種子值,進(jìn)而產(chǎn)生不同的隨機(jī)數(shù)序列。

C語言如何建立一個二維數(shù)組

剛剛看錯了,原來是C語言,這樣就好了.

輸入m,n

int m,n;

int i,j;

scanf("%d%d",m,n);

int **mm=(int**)malloc(m*sizeof(int*));

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

mm[i]=(int*)malloc(n*sizeof(int));

這就建了一個二維數(shù)組mm[m][n]了.

使用時,就直接mm[i][j]就可以了.

先輸入行數(shù)m,列數(shù)n

然后輸入一個m*n的矩陣

然后輸出這個矩陣.

#include stdio.h

#include malloc.h

void main() {

int m,n;

int i,j;

scanf("%d%d",m,n);

int **mm=(int**)malloc(sizeof(m*sizeof(int*)));

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

mm[i]=(int*)malloc(sizeof(n*sizeof(int)));

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

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

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

}

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

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

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

printf("\n");

}

}

c語言怎么創(chuàng)建二維數(shù)組

int a[m][n];//就表示一個m行n列的整型二維數(shù)組

在c語言中數(shù)組的下標(biāo)是從0開始的所以,數(shù)組a的元素個數(shù)可以表示為:a[0][0]-a[m-1][n-1]

例如:

#includestdio.h

int?main()

{

int?a[3][2],i,j;//定義一個3行2列的整型二維數(shù)組a?

for(i=0;i3;i++)//依次給二維數(shù)組賦值?

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

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

printf("\n");

for(i=0;i3;i++){//輸出二維數(shù)組?

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

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

printf("\n");

}

return?0;

}

/*

運(yùn)行結(jié)果:

1?2

3?4

4?5

1?2

3?4

4?5?

*/

c語言如何動態(tài)創(chuàng)建二維數(shù)組

既然是動態(tài)創(chuàng)建,那么,所創(chuàng)建的二維數(shù)組的行、列數(shù)應(yīng)該具有“普適”性,即,應(yīng)由“用戶”確定二維數(shù)組的規(guī)模。這是有難度的。因?yàn)?,二維數(shù)組要牽扯行指針,且需要固定每行的列元素個數(shù),用這種思路就沒有辦法達(dá)到“普適”。

為此,必須清醒地知道,所謂二維數(shù)組,其元素在內(nèi)存中依然是以一維的方式存放的。說實(shí)話,二維數(shù)組本質(zhì)上是不存在的。

既然如此,那么,“構(gòu)造”一個所謂的二維數(shù)組,只要能提供足夠?qū)嵱玫暮瘮?shù)(工具)操作這個二維數(shù)組就可以了。

綜上,接受由用戶決定的二維數(shù)組行、列值,申請一個一維數(shù)組的空間,按照二維數(shù)組方式進(jìn)行定位和操作就可以了。

為簡便起見,我用如下定義,你可以更改里面的類型,以適應(yīng)自己的需要:

typedef int USER_TYPE;

// 定義一個控制二維數(shù)組(矩陣)的“控制頭”,由三個成員組成

typedef struct MATRIX

{

USER_TYPE *data; // 真正用來存儲二維數(shù)組元素的空間

int Row; // 二維數(shù)組行數(shù)

int Col; // 二維數(shù)組列數(shù)

}MATRIX;

MATRIX *initMatrix(int row, int col); // 初始化二維數(shù)組

USER_TYPE getElementAt(MATRIX matrix, int i, int j); // 取得指定下標(biāo)的元素

void setElementAt(MATRIX matrix, int i, int j, USER_TYPE val); // 給指定下標(biāo)的元素賦值

void destroyMatrix(MATRIX *matrix); // 銷毀二維數(shù)組

void destroyMatrix(MATRIX *matrix)

{

free(matrix-data);

free(matrix);

}

void setElementAt(MATRIX matrix, int i, int j, USER_TYPE val)

{

matrix.data[i*matrix + j] = val;

}

USER_TYPE getElementAt(MATRIX matrix, int i, int j)

{

return matrix.data[i*matrix.Col + j];

}

MATRIX *initMatrix(int row, int col)

{

MATRIX *mp;

mp = (MATRIX *)malloc(sizeof(MATRX));

mp-data = (USER_TYPE *)malloc(sizeof(USER_TYPE) * row * col);

mp-Row = row;

mp-Col = col;

return mp;

}

把上面的函數(shù)當(dāng)成工具,完成二維數(shù)組初始化、賦值、取值等一系列操作,如果需要比較,還需要編寫比較的函數(shù)。

C語言 如何動態(tài)創(chuàng)建二維數(shù)組

這樣的方法可行,不過要是題目要求輸入m和n,然后再定義二維數(shù)組a[m][n],那就行不通了。

你可以這樣做:(以int型為例)

int **a;

int m,n,i;

scanf("%d%d",m,n);

a=(int**)malloc(m*sizeof(int*)); /*malloc函數(shù)在stdlib.h里面,用的時候加入這個頭文件*/

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

a[i]=(int*)malloc(n*sizeof(int));

/*這樣以后你就可以把a(bǔ)當(dāng)作二維數(shù)組a[m][n]來用了。。


分享標(biāo)題:函數(shù)創(chuàng)建二維數(shù)組C語言 函數(shù)創(chuàng)建二維數(shù)組c語言怎么寫
網(wǎng)頁URL:http://weahome.cn/article/hjgoph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部