Chủ Nhật, 3 tháng 1, 2016

Mảng 2 chiều trong c

#include 
#include 
#define max 100


/*Hàm nhập ma trận hệ số*/
void NhapMaTran(float A[max][max], int m, int n, char ch)  {
 for(int i = 0; i<m; i++)
  for(int j = 0; j<n; j++) {
   printf("%c[%d][%d] = ",ch,i,j);
   scanf("%f",&A[i][j]);
  }
}
/* Hàm xuất ma trận*/
void XuatMaTran(float A[max][max], int m, int n) {
 for(int i=0 ; i<m; i++){
    printf("\n");
    for(int j=0 ; j<n; j++)
        printf("%-4g",A[i][j]);
 }
}

/*C = A+B*/
void CongMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n) {
 for(int i = 0; i<m; i++)
  for(int j = 0; j<n; j++)
   C[i][j] = A[i][j]+B[i][j];
}
/*A cap mxn * B cap nxp = C cap mxp*/
void NhanMaTran(float A[max][max],float B[max][max], float C[max][max],int m,int n,int p){
 for(int i = 0; i<m; i++)
  for(int k = 0; k<p; k++) {
   C[i][k]=0;
   for(int j = 0; j<n; j++)
   C[i][k] = C[i][k]+A[i][j]*B[j][k];
  }
}
/*Chuong trinh chinh*/
int main() {
 int m,n,p;
 float A[max][max],B[max][max],C[max][max],D[max][max];
 printf("Nhap m = ");
 scanf("%d",&m);
 printf("Nhap n = ");
 scanf("%d",&n);
 printf("Nhap p = ");
 scanf("%d",&p);
 printf("Nhap ma tran A cap %d x %d \n",m,n);
 NhapMaTran(A,m,n,'A');
 printf("Nhap ma tran B cap %d x %d \n",m,n);
 NhapMaTran(B,m,n,'B');
 printf("Nhap ma tran B cap %d x %d \n",n,p);
 NhapMaTran(C,n,p,'C');
 printf("\nMa tran A\n");
 XuatMaTran(A,m,n);
 getch();
 printf("\nMa tran B\n");
 XuatMaTran(B,m,n);
 getch();
 printf("\nMa tran C\n");
 XuatMaTran(C,n,p);
 getch();
 printf("\nMa tran D = A+B\n");
 CongMaTran(A,B,D,m,n);
 XuatMaTran(D,m,n);
 getch();
 printf("\nMa tran D = A*B\n");
 NhanMaTran(A,C,D,m,n,p);
 XuatMaTran(D,n,p);
 getch();
 return 0;
}
 
 
#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 
 
 

0 nhận xét: