導航:首頁 > 創造發明 > c創造二維數組靜態

c創造二維數組靜態

發布時間:2021-11-06 23:53:27

⑴ 用c語言創建一個二維數組a[m][n],要求m,n從鍵盤輸入

#include <stdio.h>
#include <malloc.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int m,n;
int** a;
int i,j;
printf("輸入m和n,空格分隔:");
scanf("%d%d",&m,&n);
a=(int**)malloc(sizeof(int*)*m);
for(i=0;i<m;i++)
{
a[i]=(int*)malloc(sizeof(int)*n);
}
srand(time(0));
printf("隨機填充數組如下:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%100;
printf("%-4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)
free(a[i]);
free(a);
return 0;
}

⑵ C語言如何動態分配二維數組

動態分配二維數組:

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

{

int NC=100, NR=200;

int i,j;

char **a; // a[NR][NC] -- *a[NR] -- a[j][i]

a = (char **) malloc(sizeof(char *) * NR);

for (j=0;j<NR;j++){

a[j] = (char *) malloc(sizeof(char) * NC);

}

// 釋放空間: free(a);

編譯錯誤是因為p[j]=(char *)malloc,而不是題目的(char *)malloc(n*sizeof(char))。

(2)c創造二維數組靜態擴展閱讀:

二維數組的動態分配

二維數組A[m][n],這是一個m行,n列的二維數組。設a[p][q]為A的第一個元素,即二維數組的行下標從p到m+p,列下標從q到n+q,按「行優先順序」存儲時則元素a[i][j]的地址計算為:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按「列優先順序」存儲時,地址計算為:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放該數組至少需要的單元數為(m-p+1) * (n-q+1) * t 個位元組。

⑶ C++靜態成員二維數組的初始化問題

別這么初始化,一般是用 memset(arr,0,sizeof(arr)); 初始化數組的。
你的提問應該改成:char c::arr[255][16] = {{0}}; 你試一下吧。

⑷ c語言中定義一個二維數組

簡單點說 就不給代碼了 累。。。
思路就是用for循環 兩層循環就ok了
for(int i=0;i<多少多少;i++)
{
for(int j=0;j<多少多少;j++)

輸入那個語句忘了。。。汗。。。

⑸ c語言如何動態創建二維數組

既然是動態創建,那麼,所創建的二維數組的行、列數應該具有「普適」性,即,應由「用戶」確定二維數組的規模。這是有難度的。因為,二維數組要牽扯行指針,且需要固定每行的列元素個數,用這種思路就沒有辦法達到「普適」。
為此,必須清醒地知道,所謂二維數組,其元素在內存中依然是以一維的方式存放的。說實話,二維數組本質上是不存在的。
既然如此,那麼,「構造」一個所謂的二維數組,只要能提供足夠實用的函數(工具)操作這個二維數組就可以了。
綜上,接受由用戶決定的二維數組行、列值,申請一個一維數組的空間,按照二維數組方式進行定位和操作就可以了。
為簡便起見,我用如下定義,你可以更改裡面的類型,以適應自己的需要:
typedef int USER_TYPE;

// 定義一個控制二維數組(矩陣)的「控制頭」,由三個成員組成

typedef struct MATRIX
{
USER_TYPE *data; // 真正用來存儲二維數組元素的空間

int Row; // 二維數組行數

int Col; // 二維數組列數

}MATRIX;

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

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

void setElementAt(MATRIX matrix, int i, int j, USER_TYPE val); // 給指定下標的元素賦值
void destroyMatrix(MATRIX *matrix); // 銷毀二維數組

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;

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

⑹ c語言怎麼創建二維數組

int a[m][n];//就表示一個m行n列的整型二維數組
在c語言中數組的下標是從0開始的所以,數組a的元素個數可以表示為:a[0][0]-a[m-1][n-1]

例如:

#include<stdio.h>
intmain()
{
inta[3][2],i,j;//定義一個3行2列的整型二維數組a

for(i=0;i<3;i++)//依次給二維數組賦值
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
printf(" ");
for(i=0;i<3;i++){//輸出二維數組
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf(" ");
}
return0;
}
/*
運行結果:
12
34
45

12
34
45
*/

⑺ C語言靜態二維數組怎麼建(如圖)

float a[10][11] ;
int i , j ;

for( i = 0 ; i < 10 ; i++) //外層循環控制行
for ( j = 0 ; j <11 ; j++) //內層循環控制列
scanf("%f",&a[i][j]);

⑻ 求解釋C語言二維數組及靜態變數

for(i=0;i<8;i++)
x+=a[i][j];


你在累加元素值的時候,j的值始終是4,而二維數組索引為4的列的元素的值你沒動過,都是初值0

⑼ C語言 如何動態創建二維數組

這樣的方法可行,不過要是題目要求輸入m和n,然後再定義二維數組a[m][n],那就行不通了。
你可以這樣做:(以int型為例)
int **a;
int m,n,i;

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

a=(int**)malloc(m*sizeof(int*)); /*malloc函數在stdlib.h裡面,用的時候加入這個頭文件*/
for(i=0;i<m;i++)
a[i]=(int*)malloc(n*sizeof(int));

/*這樣以後你就可以把a當作二維數組a[m][n]來用了。。

⑽ c語言菜鳥求救!!! 在循環中創建新二維數組。。。好用的多給分!!

void *gridtoarray(int R, int C, int L)
{
return calloc( L, R * C * sizeof( char ) );
}

閱讀全文

與c創造二維數組靜態相關的資料

熱點內容
金華質監局和工商局合並 瀏覽:334
衛生院公共衛生服務考核結果 瀏覽:693
專利權的內容有哪幾項 瀏覽:750
學校矛盾糾紛排查表 瀏覽:294
內地音樂版權 瀏覽:208
公共衛生服務今後工作計劃 瀏覽:457
公共衛生服務考核小組 瀏覽:872
疫情里的科研成果 瀏覽:519
工商局愛國衛生月及健康教育宣傳月活動總結 瀏覽:942
三興商標織造有限公司 瀏覽:657
加強和改進公共服務實施方案 瀏覽:991
迷你世界創造熔岩號角 瀏覽:479
愛奇藝激活碼有效期 瀏覽:507
醫療糾紛官司南方周末 瀏覽:855
公共服務類大樓的物業管理方案 瀏覽:284
電影版權買賣合同範本 瀏覽:167
口罩在商標注冊屬於哪個類目 瀏覽:256
基本公共衛生服務質控小結 瀏覽:668
數字版權的權源 瀏覽:565
駐馬店置地弘潤山轉讓 瀏覽:146