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;
}
運行成功