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

c語言二維數組矩陣計算

發布時間: 2023-08-27 00:36:59

A. 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(" ");

}

}

(1)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;

}

B. 用c語言實現兩個矩陣相乘怎麼做

1、程序運行輸入數據時,第一行為A矩陣的行列數和B矩陣的行列數,接著分別輸入A、B兩個矩陣的值。

C. 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");
}
兩個運算矩陣可以是大小不同的,
輸出結果由被乘數矩陣的行和乘數矩陣的列決定,
你要求的輸出格式比較煩,沒時間不夠啦!有時間再玩吧。

D. 用C語言實現二維數組的相關運算

#include<stdio.h>
#define n 5
int a[n][n];//定義一個大小為n的二維數組,這里以n=5為例
void main()
{
int i,j;
printf("請逐行輸入矩陣:\n");
for(i=0;i<n;i++)
{
printf("第%d行:",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}//這是手動對a[n][n]初始化
int sum1();
int sum2();
int sum3();//這些都是函數聲明
printf("%d,\t%d,\t%d",sum1(),sum2(),sum3());
}
int sum1()//用來計算邊緣元素之和
{
int s=0;
int i,j;
for(i=0,j=0;j<n;j++)
{s+=a[i][j];}
j--;i++;
for(;i<n;i++)
{s+=a[i][j];}
i--;j--;
for(;j>=0;j--)
{s+=a[i][j];}
j++;i--;
for(;i>0;i--)
{s+=a[i][j];}
return(s);
}
int sum2()//用來計算不相鄰元素之和
{
int s=0;
int i,j;
for(i=0;i<n;i++)
{
for(j=i%2;j<n;j+=2)
{s+=a[i][j];}
}
return(s);
}
int sum3()//用來計算對角線元素之和
{
int s=0;
int i;
for(i=0;i<n;i++)
{
s+=a[i][i];
s+=a[i][n-1-i];
}
if(n%2)
return(s-a[n/2][n/2]);//如果n為奇數,矩陣正中央的元素就被多算了一遍,所以要把它減掉
else
return(s);
}

E. 急。。。。(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