thằng bạn nhờ mình hỏi về 1 bài, mà mình lại không học C nên mình lên đây hỏi mong ai biết trả lời giúp: Nhập một ma trận A vuông cấp n gồm các phần tử là số nguyên. Xác định ma trận B từ ma trận A bằng cách loại bỏ dòng i cột j.Nó thắc mắc là 2 cách này thì khác gì nhau ??
###cách 1:
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void Nhap_mang(int a[10][10], int *pn)
{
int n, i, j;
printf("Nhap n: ");
scanf("%d",&n);
*pn = n;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
printf("\na[%d][%d] = ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
void Xuat_mang(int a[10][10], int n)
{
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
printf("\t%d",a[i][j]);
if (j == (n-1))
printf("\n");
}
}
void Cat(int a[10][10], int *pn)
{
int n, i, j, k, h, c, tam;
printf("Ban muon cat hang nao: ");
scanf("%d",&h);
printf("\nBan muon cat cot nao: ");
scanf("%d",&c);
n = *pn;
h--;
c--;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (j == c)
{
for (k = c; k < n; k++)
{
tam = a[i][k];
a[i][k] = a[i][k+1];
a[i][k+1] = tam;
}
}
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (i == h)
{
for (k = h; k < n; k++)
{
tam = a[k][j];
a[k][j] = a[k+1][j];
a[k+1][j] = tam;
}
}
*pn = n-1;
}
int main()
{
int n, a[10][10];
Nhap_mang(a, &n);
printf("\nMang A:\n");
Xuat_mang(a, n);
Cat(a, &n);
printf("\nMang B:\n");
Xuat_mang(a, n);
return 0;
}
cách 2:
#include<stdio.h>
#include<conio.h>
void nhapmatran (int matran[10][10], int &n)
{
int i,j;
printf ("nhap vao kich thuoc ma tran :");
scanf ("%d",&n);
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf ("A[%d][%d]:",i+1,j+1);
scanf("%d",&matran[i][j]);
}
}
void xuatmatran (int matran[10][10], int n)
{
int i,j;
printf ("ma tran da nhap vao la \n");
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf ("%3d\t",matran[i][j]);
printf ("\n");
}
}
void Delete (int matran[10][10], int n,int &da, int &ca)
{
for (int i=da-1; i<n; i++)
for (int j=0-1; j<n; j++)
matran[i][j]=matran[i+1][j];
for (int i=ca-1; i<n; i++)
for (int j=0; j<n; j++)
matran[i][j]=matran[i][j+1];
}
int main ()
{
int matran[10][10],n,da,ca;
nhapmatran (matran,n);
xuatmatran(matran,n);
lap:
printf ("nhap dong can xoa:");
scanf ("%d",&da);
if(da>n||da==0)
{
printf ("dong can xoa khong hop le");
goto lap;
}
lap1:
printf ("nhap cot can xoa:");
scanf ("%d",&ca);
if(ca>n||ca==0)
{
printf ("dong can xoa khong hop le");
goto lap1;
}
Delete(matran,n,da,ca);
da=n-1;
ca=n-1;
xuatmatran (matran,da);
return 0;
}