c語言二維數組矩陣
❶ c語言二維數組
例如對整型二維數組a[3][2]賦值方法一:在定義的同時賦值 int a[3][2]={0};//所有數組元素均為0 方法二: int a[3][2]={1,2,3,4,5,6};//常規的賦值方法方法三: int a[3][2]={{1,2},{3,4},{5,6}};//分行的賦值方法方法四: int a[3][2]={{1,2},{0},{3}};//部分賦值方法,第一行元素的值分別為1,2,第二行元素值都是0,第三行第一個元素值為3,第二個元素值為0 方法五: int a[3][2];/先定義 for(i=0;i<=3;i++) //用雙重for循環賦值,i,j表示二維數組下標 for(j=0;j<=2;j++) scanf("%d",&a[i][j]); 希望對你有所幫助。
❷ 如何用C語言編一個程序,輸入一個二維數組,然後以一個矩陣的方式輸出。
#include<stdio.h>
void main(){
int array[3][3], (*pArr)[3], *p[3], i, j, sum;
srand(time(NULL));
for(i=0; i<3; i++)
for(j=0; j<3; j++)
array[i][j] = rand()%100+0;
pArr = array;
for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++){
printf("%d ", pArr[i][j]);
if(j == 2){
printf(" ");
}
}
for(i=0; i<3; i++)
p[i] = array[i];
for(i=0; i<3; i++){
sum = 0;
for(j=0; j<3; j++){
sum += p[i][j];
}
printf("第%d行的和是%d ", i+1, sum);
}
}
(2)c語言二維數組矩陣擴展閱讀:
1、printf命令的作用是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。printf()函數的調用格式為:printf("<格式化字元串>", <參量表>)。
printf()是C語言標准庫函數,在 stdio.h 中定義。輸出的字元串除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
2、printf函數調用的一般形式
printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。printf函數調用的一般形式為:printf(「格式控制字元串」,輸出表列)其中格式控制字元串用於指定輸出格式。
格式控制串可由格式字元串和非格式字元串兩種組成。格式字元串是以%開頭的字元串,在%後面跟有各種格式字元,以說明輸出數據的類型、形式、長度、小數位數等。如「%d」表示按十進制整型輸出,「%ld」表示按十進制長整型輸出,「%C」表示按字元型輸出等。後面將專門給予討論。
非格式字元串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字元串和各輸出項在數量和類型上應該一一對應。
❸ c語言怎麼定義二維數組
#include<stdio.h>
#defineN3
#defineM4
voidmain()
{
inta[N][M];
intb[M][N];
inti,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%5d",b[i][j]);
}
printf(" ");
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
b[j][i]=a[i][j];
}
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%5d",b[i][j]);
}
printf(" ");
}
}
❹ C語言編程 二維數組 輸出一個2*3的矩陣
#include<stdio.h>
void main()
{
int a[2][3];
int i,j;
printf("輸入一個2*3整型數組 ");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("
輸出一個2*3整型數組
");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf(" ");
}
}
(4)c語言二維數組矩陣擴展閱讀:
注意事項
c語言的輸入輸出可用標准庫裡面的輸入輸出函數,即scanf和printf。
輸入輸出二維數組的例子:
#include<stdio.h>
int main()
{
int M = 5 , N = 5;
int array[M][N]; //定義一個5x5的int數組
printf("輸入:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
scanf("%d",&array[i][j]);
}
}
printf("輸出:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
printf("%d ",array[i][j]);
}
}
return 0;
}
❺ C語言程序設計方案!!二維數組應用 矩陣演算法 求高人
#include
<stdio.h>
void
input_data(int
*l,int
*r,int
data[100][100])
{
int
i,j,k;
printf("輸入矩陣行數:");
scanf("%d",l);
printf("輸入矩陣列數:");
scanf("%d",r);
printf("按行輸入數據,數據間用空格間隔:\n");
for(i=0;i<*l;i++)
for(j=0;j<*r;j++)
scanf("%d",&data[i][j]);
}
int
add_subtra(int
m1[100][100],int
l1,int
r1,
int
m2[100][100],int
l2,int
r2,char
m,int
rm[100][100])
{
int
i,j;
if(l1!=l2
||
r1!=r2)
{
printf("矩陣數據錯誤1.\n");
return;
}
if(m=='+')
for(i=0;i<l1;i++)
for(j=0;j<r1;j++)
rm[i][j]=m1[i][j]+m2[i][j];
else
for(i=0;i<l1;i++)
for(j=0;j<r1;j++)
rm[i][j]=m1[i][j]-m2[i][j];
}
int
mul(int
m1[100][100],int
l1,int
r1,
int
m2[100][100],int
l2,int
r2,int
m[100][100])
{
int
i,j,k;
if(l1!=r2
)
{
printf("矩陣數據錯誤2.\n");
return;
}
for(i=0;i<l1;i++)
for(j=0;j<r2;j++)
{
m[i][j]=0;
for(k=0;k<r1;k++)
m[i][j]+=m1[i][k]*m2[k][j];
}
}
int
output(int
m[100][100],int
l,int
r)
{
int
i,j;
for(i=0;i<l;i++)
{
for(j=0;j<r;j++)
printf("%3d
",m[i][j]);
printf("\n");
}
}
int
main()
{
int
d1[100][100],d2[100][100],d[100][100];
int
l1,r1,l2,r2;
int
i,j,k;
char
mark[2];
printf("輸入第一個矩陣數據:\n");
input_data(&l1,&r1,d1);
printf("輸入的第一個矩陣:\n");
output(d1,l1,r1);
printf("輸入第二個矩陣數據:\n");
input_data(&l2,&r2,d2);
printf("輸入的第二個矩陣:\n");
output(d2,l2,r2);
printf("指定運算符(+/-/*):");
scanf("%s",mark);
while(mark[0]!='+'
&&
mark[0]!='-'
&&
mark[0]!='*')
{
printf("符號錯誤請重新輸入(+/-/*):");
scanf("%s",mark);
}
switch(mark[0])
{
case
'+':
case
'-':
add_subtra(d1,l1,r1,d2,l2,r2,mark[0],d);
break;
case
'*':
mul(d1,l1,r1,d2,l2,r2,d);
break;
}
//output(d1,l1,r1);
//output(d2,l2,r2);
printf("運算:%c,計算結果為:\n",mark[0]);
output(d,l1,r2);
system("pause");
}
兩個運算矩陣可以是大小不同的,
輸出結果由被乘數矩陣的行和乘數矩陣的列決定,
你要求的輸出格式比較煩,沒時間不夠啦!有時間再玩吧。
❻ c語言如何使二維數組 輸出為矩陣的形式
int a[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
/*這樣就可以啦,這是偽代碼,別直接復制粘貼哦*/
❼ 急急!!!如何用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;
}
運行成功
❽ c語言中二維數組如何實現矩陣轉換
如果數組是一個方陣,可以這樣:
for(inti=0;i<n;i++)
for(intj=i+1;j<n;j++)
{
inttemp=a[i,j];
a[i,j]=a[j,i];
a[j,i]=temp;
}
如果是一個M*N的矩陣的話,就需要重新組織數組了,但是原理差不多
❾ c語言中二維數組哪個是行,哪個是列
1、二維數組的第一個參數是行,第二個參數是列。二維數組定義的一般形式是: 類型說明符 數組名[常量表達式1][常量表達式2],其中常量表達式1表示第一維下標的長度,常量表達式2 表示第二維下標的長度。
2、C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C是高級語言:它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。C語言一共只有40個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作。
3、在C語言中,二維數組是按行排列的。即,先存放a[0]行,再存放a[1]行,最後存放a[2]行。每行中有四個元素也是依次存放。由於數組a說明為int類型,該類型占兩個位元組的內存空間,所以每個元素均佔有兩個位元組。
4、二維數組在概念上是二維的,即是說其下標在兩個方向上變化,下標變數在數組中的位置也處於一個平面之中,而不是象一維數組只是一個向量。但是,實際的硬體存儲器卻是連續編址的,也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數組,可有兩種方式:一種是按行排列, 即放完一行之後順次放入第二行。另一種是按列排列, 即放完一列之後再順次放入第二列。
5、二維數組本質上是以數組作為數組元素的數組,即"數組的數組",類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱變方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。
6、二維數組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 個位元組。