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

c語言二維數組的上一項

發布時間: 2022-02-27 16:06:53

1. c語言二維數組 定義一個二維數組 a[2][2];scanf("%s",a[1]);是什麼意思

就是將字元串 b拷貝到數組a中,這是一個復制函數,在string 頭文件有定義,所以你可以查閱它的使用方法
那個二維數組就相當於 它的每個元素又是一維數組,上例相當於 有2個一維數組,每個數組又含有兩個元素,所以a[1]就是第二個一維數組的首地址,可以用來輸入字元串

2. 為什麼C語言中二維數組的數組名a和*a表示的是同一個值

當定義二維數組a[M][N]時,數組名可以認為是二維指針,其指向二維數組的首地址。
於是a的值就是首地址的值。
而*a,就是a[0],a[0]是第一行的標記,代表第一行的首地址。
在二維數組中,所有元素都是緊密排列的,這樣整個數組的首地址,第一行的首地址,和第一個元素的首地址,即a, a[0], &a[0][0] 都是相同的。
於是a和*a的值是相同的。

3. C語言從鍵盤上輸入一個二維數組再輸出!!謝謝

#include"stdio.h"
void main()
{
int a[3][3];
int i,j;
printf("please input the number:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
多了幾個分號,還有輸入時應該用空格或者回車分開各個數據

4. C語言二維數組問題

不是
這么說吧,數組名本身就是指針,指向數組的第一個元素

至於你所說的調用調用二級(二維吧)數組,難道不是如普通變數般直接調用嗎?

根據問題補充說,這是不允許的,main()函數的形參是固定的不能傳遞指針。而一般的自定義函數只能用傳遞首地址的形式來傳遞二維數組,例子如下:

定義:int a[X][Y];
int func(int *p,int x,int y){ //x,y即為調用x行y列的元素
printf("%d\n",p+x*X+y); //這里是通過計算指針位置實現
return 0;}
調用: func(a,3,3);

這種通過計算地址方法調用相當麻煩。。可以考慮將數組定義在結構中,再將結構進行形參傳遞,當這樣會降低效率...例子如下

#include<stdio.h>

typedef struct{
int a[5][5];}TE;
TE test;
int func(TE a,int x,int y){
printf("%d\n",a.a[x][y]);
return 0;}

int main()
{
test.a[3][3]=5;
func(test,3,3);

getch();
return 0;}

5. C語言 二維數組的使用

實際上是數據的一種組織方式,你可以想像成: 二維數組:行x列的長方形 三位數組:長x寬x高 的長方體 在c語言中,數組的意義,就是讓數組的名字可以當作指針來使用,這樣就能很方便的定位數據。 比如你有一個數組arry[300][300][300] 那麼他能存儲300*300*300=27000000個數據,如果要移動指針,那麼非常浪費,你需要移動27000000次才能移動到最後,而用數組的名字*(arry[300][300]++)只要300次就可以移動到最後一個數據。 當然數組和指針不僅僅是這個用途,還有更多精妙的用法等你靈光一現。

6. c語言二維數組的一個問題

原程序沒有列印過換行符啊,所以不會分行列印成你說的樣子,如果需要,改成下面這樣:
#include <stdio.h>
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int i,j;
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{ printf("%5d",a[i][j]);
}
printf("\n");
}
}

7. 急。。。。(c語言)定義二維數組表示一個矩陣,求上三角所有元素之和。代碼 。。。。。

函數 fun() 計算上三角所有元素之和。參數1是數組,參數2是n*n數組大小n.
返回 上三角元素之和。
調用方法: fun(&a[0][0],n)
程序如下:

#include<stdio.h>
#include<stdlib.h>

float fun(float *a, int n){
int i,j;
float sum=0;
for (j=0;j<n;j++)
for (i=j;i<n;i++)sum = sum + a[j*n+i];
return sum;
}

main(){
float a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int n=4;
printf("%g",fun(&a[0][0],n));
return 0;
}

算例輸出: 70

8. 急急!!!如何用c語言輸入和輸出一個二維數組

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[2][2];

int i,j;

for (i=0;i<2;i++)

{

for (j=0;j<2;j++)

{

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

}

}

for(i=0;i<2;i++)

for(j=0;j<2;j++)

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

return 0;

}

運行成功