當前位置:首頁 » 編程語言 » c語言怎麼輸出多維數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼輸出多維數組

發布時間: 2023-05-23 15:59:17

⑴ 求c語言關於多維數組的詳細講解,急!!!


每一個[]代表一個方向 當然三維以上的數組不太容易用實體模式想像 但大概方式是一樣的

先搞明白1 2 3維對應於下標的方式 指針 地址的對應關系

比如對於int a[2][3][4]而言

a[1] a[1][1] a[1][1][1] a[1][1][3] a[1][2][0]

搞清以上幾項的地址關系


組數基本我們可以按行讀來理解[具體對應於代碼]

即 1維 從左向右讀

2維 a[2][3] 從左向右工a[][0]~a[][2] 3格 成為一行 每一行對應一個a[]

三維a[4][2][3]的在此基礎上增加到4個層面 (原來的2維對應為2*3格的一個面)

⑵ C語言多維數組

&multi[0]不等於multi[0],
multi也不等於multi[0],
multi[0]是一維指針。
multi是一個二維指針。
multi[0][0]表示一個具體的int值。
你用%u輸出的結果實際上都是輸出了multi[0][0]的值。

⑶ C語言關於多維數組的問題;字幅有限;請看問題補充;謝謝了

數組的輸入輸出格式不是固定的,是要自己具體定義的,也就是說,既可以按行輸出,也可以按列輸出,也可以按對角線輸出~~~等等,當然,它的確是按行存儲的,由上至下先存儲完第一行的所有元素,接著再存儲下一行的所有元素,你舉的程序例子是按行輸出的,但就像樓上所說的,是無法通過編譯的,因為你沒有指明你要輸出的數組元素,編譯器是會報錯的,把這個語句printf(%3d);換成printf("%3d",a[i][j]);就可以了~~~

⑷ C語言如何輸入輸出多維字元串數組問題

直接
printf("%s \n", str[0]);
printf("%s \n", str[1]);
printf("%s \n", str[2]);

⑸ 如何動態構建多維數組(c語言)

兩種方法:
1.轉化為一維數組申請
2.先申請全部行首指針,再按行逐行申請

1.
a=(int *)malloc(sizeof(int),(unsigned)m*n);
使用的時候就和一般的二維數組一樣。
舉個例子給你:
#include "stdlib.h"
#include "stdio.h"
#include <malloc.h>

int main()
{
int i,j;
int n;//這個就是需要指定的行數
int (*p)[10];

scanf("%d",&n);//取得行數

//動態生成二維數組,指定列數為10,如果想改,自己該裡面
的參數,如果想定義n行2列就為: p=(int (*)[2])malloc(n*2*sizeof(int));
p=(int (*)[10])malloc(n*10*sizeof(int)); //動態申請n行10列的二維數組

for(i=0;i<n;i++)
for(j=0;j<10;j++)
p[i][j]=i*j;

for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
printf("%d,",p[i][j]);

printf("\n");
}
free(p);

return 0;
}

2.
這個也給你舉個例子吧:
#include <stdio.h>
#include <malloc.h>
main()
{
int i = 0;
int j = 0;
int line = 0;
int row = 0;
int **p = NULL;

printf("input the line of the array:\n");
scanf("%d", &line);
printf("input the row of the array:\n");
scanf("%d", &row);

p = (int **)malloc(sizeof(int *) * line);
if (NULL == p)
{
return;
}
for (i = 0; i < line; i++)
{
*(p + i) = (int *)malloc(sizeof(int) * row);
if (NULL == *(p + i))
{
return;
}
}
/*input data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
p[i][j] = i + 1;
}
}
/*output data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
printf("%d", p[i][j]);
}
}
/*free every line point*/
for (i = 0; i < line; i++)
{
free(*(p + i));
p[i] = NULL;
}

free(p);
p = NULL;
}

第一種方法數組創建和釋放都比較簡單

⑹ c語言程序設計(輸入一個數n,輸出一個n維數組)

#include <stdio.h>
int main(void)
{
int n,i,*p;
printf("請輸入一個整數:");
scanf("%d",&n);
p=new int[n];
for(i=0;i<n;i++)
*(p+i)=i;
for(i=0;i<n;i++)
printf("%d ",*(p+i));
putchar('\n');
delete []p;
return (0);
}