#include<stdio.h>
void nhap(int &n,int a[][10]){
printf("nhap kich thuoc ma tran");
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("\na[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
}
void in(int n, int a[][10]){
printf("\nMa tran vua nhap la:\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
void tongchinh(int n, int a[][10]){
int s=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j){
s=s+a[i][j];
}
}
}
printf("\ntong duong cheo chinh la:%d",s);
}
void tongphu(int n, int a[][10]){
int s=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i+j==n-1){
s=s+a[i][j];
}
}
}
printf("\ntong duong cheo phu la:%d",s);
}
main()
{
int n, a[10][10];
nhap(n,a);
in(n,a);
tongchinh(n,a);
tongphu(n,a);
}
Bài 15: Nhập số liệu cho ma
trận A kích thước mxn có
các phần tử là các số nguyên. Tìm hàng
trong ma trận có tổng phần tử là nhỏ nhất và loại bỏ hàng đó ra khỏi ma trận.
Nếu có nhiều hàng tổng bằng nhau thì chọn hàng đầu tiên từ trên xuống.
#include<stdio.h>
void nhap(int &n,int &m,int a[][10]){
printf("nhap so hang:");
scanf("%d",&n);
printf("nhap so cot");
scanf("%d",&m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("\na[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
}
void in(int n, int m, int a[][10]){
printf("\nMa tran vua nhap la:\n");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
void cut(int n,int m, int a[][10]){
int min,k=0,s=0,i,j;
for(i=0;i<1;i++){
for(j=0;j<m;j++){
min+=a[i][j];
}
}
while(i<n){
for(j=0;j<m;j++){
s+=a[i][j];
}
if(s<min){
min=s;
k=i;
}
i++;
}
printf("\n ma tran sau khi xoa hang la: \n");
for(int i=0;i<n;i++){
if(i!=k){
for(int j=0;j<m;j++){
printf("%d\t",a[i][j]);
}
}
printf("\n\n");
}
}
main()
{
int n,m,a[10][10];
nhap(n,m,a);
in(n,m,a);
cut(n,m,a);
}
Bài 16: .
Nhập số liệu cho ma trận A kích thước mxn có
các phần tử là các số nguyên. Tìm cột trong
ma trận có tổng phần tử là lớn nhất và loại bỏ cột đó ra khỏi ma trận. Nếu có nhiều cột tổng bằng nhau thì chọn cột
đầu tiên từ trái sang phải.
#include<stdio.h>
void nhap(int &n,int &m,int a[][10]){
printf("nhap so hang:");
scanf("%d",&n);
printf("nhap so cot");
scanf("%d",&m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("\na[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
}
void in(int n, int m, int a[][10]){
printf("\nMa tran vua nhap la:\n");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
void cut(int n,int m, int a[][10]){
int min,k=0,s=0,i,j;
for(i=0;i<n;i++){
for(j=0;j<1;j++){
min=min+a[i][j];
}
}
while(j<m){
for(i=0;i<n;i++){
s+=a[i][j];
}
if(s<min){
min=s;
k=j;
}
j++;
}
printf("\nma tran sau khi xoa la: \n");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(j!=k){
printf("%d\t",a[i][j]);
}
}
printf("\n\n");
}
}
main()
{
int n,m,a[10][10];
nhap(n,m,a);
in(n,m,a);
cut(n,m,a);
}
Bài 17 :
Viết chương trình
nhập số liệu cho ma trận các số nguyên A
cấp mxn trong đó
m, n là các số tự nhiên. Sau đó tìm ma trận chuyển vị B = (bij) cấp
nxm của A, bij = aji
#include<stdio.h>
void nhap(int x,int y,int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("\nz[%d,%d]=",i,j);
scanf("%d",&z[i][j]);
}
}
}
void in(int x, int y, int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("%d\t",z[i][j]);
}
printf("\n\n");
}
}
void chuyenvi(int x, int y, int z[][10], int k[10][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
k[j][i]=z[i][j];
}
}
}
main()
{
int n,m,a[10][10],b[10][10]={0};
printf("nhap so hang ma tran a:");
scanf("%d",&n);
printf("\nnhap so cot ma tran a");
scanf("%d",&m);
nhap(n,m,a);
printf("\nma tran a la:\n");
in(n,m,a);
chuyenvi(n,m,a,b);
printf("\nma tran sau khi chuyen vi:\n");
in(m,n,b);
}
void nhap(int x,int y,int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("\nz[%d,%d]=",i,j);
scanf("%d",&z[i][j]);
}
}
}
void in(int x, int y, int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("%d\t",z[i][j]);
}
printf("\n\n");
}
}
void chuyenvi(int x, int y, int z[][10], int k[10][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
k[j][i]=z[i][j];
}
}
}
main()
{
int n,m,a[10][10],b[10][10]={0};
printf("nhap so hang ma tran a:");
scanf("%d",&n);
printf("\nnhap so cot ma tran a");
scanf("%d",&m);
nhap(n,m,a);
printf("\nma tran a la:\n");
in(n,m,a);
chuyenvi(n,m,a,b);
printf("\nma tran sau khi chuyen vi:\n");
in(m,n,b);
}
BÀI 18: Nhập số liệu cho ma trận A có kích thước mxn. Sau đó tìm ma trận chuyển vị B có kích thước nxm thỏa mãn bij = aji. Tính ma trận tích C có kích thước mxm của 2 ma trận A và B.
#include<stdio.h>
void nhap(int x,int y,int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("\nz[%d,%d]=",i,j);
scanf("%d",&z[i][j]);
}
}
}
void in(int x, int y, int z[][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("%d\t",z[i][j]);
}
printf("\n\n");
}
}
void chuyenvi(int x, int y, int z[][10], int k[10][10]){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
k[j][i]=z[i][j];
}
}
}
void tich(int x, int y , int z[][10], int k[][10]){
int c[10][10]={0};
for(int i=0;i<x;i++){
for(int j=0;j<x;j++){
for(int l=0;l<y;l++){
c[i][j]+=z[i][l]*k[l][j];
}
}
}
printf("\nma tran tich C la:\n");
for(int i=0;i<x;i++){
for(int j=0;j<x;j++){
printf("%d\t",c[i][j]);
}
printf("\n\n");
}
}
main()
{
int n,m,a[10][10],b[10][10];
printf("nhap so hang ma tran a:");
scanf("%d",&n);
printf("\nnhap so cot ma tran a");
scanf("%d",&m);
nhap(n,m,a);
printf("\nma tran a la:\n");
in(n,m,a);
chuyenvi(n,m,a,b);
printf("\nma tran sau khi chuyen vi:\n");
in(m,n,b);
tich(n,m,a,b);
}
Bài 19: Một ma trận các số thực được gọi là ma trận tam
giác nếu toàn bộ các phần tử phía dưới (hoặc phía trên) đường chéo chính đều
bằng 0. Nhập một ma trận, hãy kiểm tra xem đó có phải là ma trận tam giác hay
không.
#include<stdio.h>
void nhap(int &n,int a[][10]){
printf("nhap kich thuoc ma tran");
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("\na[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
}
void in(int n, int a[][10]){
printf("\nMa tran vua nhap la:\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
int kt(int n, int a[][10]){
for(int i=0;i<n;i++){
for(int j=0;j<i;j++){
if(a[i][j]!=0)
return 0;
return 1;
}
}
}
int kt2(int n, int a[][10]){
for(int i=0;i<n;i++){
for(int j=n-i;j<n;j++){
if(a[i][j]!=0)
return 0;
return 1;
}
}
}
main()
{
int n, m, a[10][10];
nhap(n,a);
in(n,a);
if(kt(n,a)||(kt2(n,a))){
printf("\nma tran tam giac");
}
else
{
printf("\nkhong phai ma tran tam giac");
}
}
Bài 20: Nhập ma trận A là ma
trận vuông cấp n. Thực hiện xoay ma trận một góc 90 độ ngược chiều kim đồng hồ.
#include<stdio.h>
void nhap(int &n,int a[][10]){
printf("nhap kich thuoc ma tran");
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("\na[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
}
void in(int n, int a[][10]){
printf("\nMa tran vua nhap la:\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
void xoay90(int n, int a[][10],int b[][10]){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[i][j]=a[j][n-i-1];//xoay nguoc chieu kim dong ho
}
}
printf("ma tran sau khi xoay 90\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d\t",b[i][j]);
}
printf("\n\n");
}
}
main()
{
int n, m, a[10][10], b[10][10];
nhap(n,a);
in(n,a);
xoay90(n,a,b);
}
Bài 21Nhập số
nguyên dương n. In ra ma trận xoáy ốc vuông cấp n.
#include<stdio.h>
void xoayoc(int n,int m, int a[][10]){
int hang=n-1, cot=m-1, d=0, dem=1;
while(dem<m*n){
for(int i=d;i<=cot;i++)
{
a[d][i]=dem;
dem++;
}
if(dem==m*n) break;
for(int i=d+1;i<=hang;i++){
a[i][cot]=dem;
dem++;
}
if(dem==m*n) break;
for(int i=cot-1;i>=d;i--){
a[hang][i]=dem;
dem++;
}
if(dem==m*n) break;
for(int i=hang-1;i>d;i--){
a[i][d]=dem;
dem++;
}
if(dem==m*n) break;
d++;hang--,cot--;
}
}
void in(int n, int m,int a[][10]){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
}
main()
{
int n,m, a[10][10];
printf("nhap n: ");
scanf("%d%d",&n,&m);
xoayoc(n,m,a);
in(n,m,a);
}
Không có nhận xét nào:
Đăng nhận xét