#include<iostream>
#include<fstream>
using namespace std;
#define max 15
void NhapMang(int a[][max], int d, int c)
{
for (int i = 0; i < d; i++)
{
for (int j = 0; j < c; j++)
{
cout << "\nNhap vao a[" << i << "][" << j << "]: ";
cin >> a[i][j];
}
}
}
void XuatMang(int a[][max], int d, int c)
{
cout << "\nMang la : \n";
for (int i = 0; i < d; i++)
{
for (int j = 0; j < c; j++)
{
cout << " " << '[' << a[i][j] << "]\t";
}printf("\n\n");
}
}
void NhapDongCot(int& d, int& c) {
do {
cout << "\nNhap so dong : ";
cin >> d;
if (d > max || d < 1)
{
cout << "dong >0 va <" << max << "\nNhap lai di !";
}
} while (d > max || d < 1);
do {
cout << "\nNhap so cot : ";
cin >> c;
if (c > max || c < 1)
{
cout << "cot >0 va <" << max << "\nNhap lai di !";
}
} while (c > max || c < 1);
}
void TaoMangRandom(int a[][max], int d, int c) {
srand(time(0));
for (int i = 0; i < d; i++)
{
for (int j = 0; j < c; j++)
{
a[i][j] = -100 + rand() % 201;
}
}
}
void TaoMangTuFile(int a[][max], int d, int c, string TenFile) {
ifstream f;
f.open(TenFile, ios_base::in);
for (int i = 0; i < d; i++)
{
for (int j = 0; j < c; j++)
{
f >> a[i][j];
}
}
}
double TinhTBCptuTrenBien(int a[][max], int d, int c) {
int tong = 0;
double dem = 0;
for (int i = 0; i < d * c; ++i) {
if (i / c == 0 || i / c == (d - 1) || i % c == 0 || i % c == (c - 1)) {
dem++;
tong += a[i / c][i % c];
}
}
return tong / dem;
}
double TinhTBCptuTrenDCC(int a[][max], int d, int c) {
if (d == c) {
double tong = 0;
for (int i = 0; i < d * c; ++i) {
if (i / c == i % c) {
tong += a[i / c][i % c];
}
}
return tong / d;
}
else
{
return -99;
}
}
double TinhTBCptuTrenDCP(int a[][max], int d, int c) {
if (d == c) {
double tong = 0;
for (int i = 0; i < d; ++i) {
tong += a[i][--c];
}
return tong / d;
}
else
{
return -99;
}
}
void Swap(int& a, int& b) {
int temp = b;
b = a;
a = temp;
}
void HoanVi2Cot(int a[][max], int d, int c, int x, int y) {
for (int i = 0; i < d; ++i) {
Swap(a[i][x], a[i][y]);
}
}
bool KiemTraSNT(int x, int i = 3) {
if (x == 2) {
return true;
}
if (x < 2 || x % 2 == 0) {
return false;
}
if (i > sqrt(x)) {
return true;
}
if (x % i == 0) {
return false;
}
return KiemTraSNT(x, i + 2);
}
double TBNSNTTrenDong(int a[][max], int d, int c) {
double dem = 0, tong = 1;
for (int i = 0; i < c; i++) {
bool x = KiemTraSNT(a[d][i]);
if (x) {
dem++;
tong *= a[d][i];
}
}
if (dem != 0) {
return tong / dem;
}
return 0;
}
int MaxTBNSNTTrenDong(int a[][max], int d, int c, double& Max) {
Max = TBNSNTTrenDong(a, 0, c);
int temp;
for (int i = 1; i < c; i++) {
double x = TBNSNTTrenDong(a, i, c);
if (Max < x) {
Max = x;
temp = i;
}
}
return temp;
}
void SaoChepMang(int a[][max], int b[][max], int d, int c) {
for (int i = 0; i < d; i++) {
for (int j = 0; j < c; j++) {
b[i][j] = a[i][j];
}
}
}
void TaoMang_B_TuMang_A_SaoChoChanTangLeGiamTrenDong(int a[][max], int d, int c, int b[][max]) {
SaoChepMang(a, b, d, c);
for (int k = 0; k < d; ++k) {
for (int i = 0; i < c - 1; ++i) {
for (int j = i + 1; j < c; j++) {
if (b[k][i] % 2 == 0 && b[k][j] % 2 == 0) {
if (b[k][i] > b[k][j]) {
Swap(b[k][i], b[k][j]);
}
}
}
}
}
for (int k = 0; k < d; ++k) {
for (int i = 0; i < c - 1; ++i) {
for (int j = i + 1; j < c; j++) {
if (b[k][i] % 2 != 0 && b[k][j] % 2 != 0) {
if (b[k][i] < b[k][j]) {
Swap(b[k][i], b[k][j]);
}
}
}
}
}
}
void TaoMang_C_D_TuMang_A_Mang_C_ToanDuong_D_ToanAm(int a[][max], int d, int c, int C[][max], int D[][max]) {
for (int i = 0; i < d; i++) {
for (int j = 0; j < c; j++) {
if (a[i][j] > 0) {
C[i][j] = a[i][j];
D[i][j] = 0;
}
else
{
D[i][j] = a[i][j];
C[i][j] = 0;
}
}
}
}
//int DemSoLanXuatHien_E_Trong_A(int a[][max], int d, int c) {
// int E[max][max];
// int D, C;
// do {
// cout << "\nNhap so dong cua ma tran E : ";
// cin >> D;
// if (D > d || D < 1)
// {
// cout << "dong >0 va <" << d << "\nNhap lai di !";
// }
// } while (D > d || D < 1);
// do {
// cout << "\nNhap so cot : ";
// cin >> C;
// if (C > c || C < 1)
// {
// cout << "cot >0 va <" << C << "\nNhap lai di !";
// }
// } while (C > c || C < 1);
// NhapMang(E, D, C);
// cout << "\nMang E :";
// XuatMang(E, D, C);
// for (int j = 0; j < D*C; k++) {
// for (int i = 0; i < d*c; i++) {
// if(a[])
// }
// }
//}
bool KiemTraSTV(int x) {
int tong = 0;
for (int i = 1; i <= x / 2; i++) {
if (x % i == 0) {
tong += i;
}
}
return tong > x;
}
void XuatCot(int a[][max], int d, int c) {
for (int i = 0; i < d; i++) {
cout << "\n\t" << a[i][c];
}
}
void LietKePhanTuCuaCotChuaToanSoThinhVuong(int a[][max], int d, int c) {
int x[max];
int dem = 0;
int temp;
for (int i = 0; i < d; i++) {
temp = 0;
for (int j = 0; j < c; j++) {
if (!KiemTraSTV(a[j][i])) {
temp = 1;
break;
}
}
if (temp == 0) {
x[dem++] = i;
}
}
if (dem == 0) {
cout << "\nKhong co cot nao chua toan so thinh vuong !";
return;
}
cout << "\nCac cot chua toan so thinh vuong nhu sau: ";
for (int i = 0; i < dem; i++) {
cout << "\ncot " << x[i];
XuatCot(a, d, x[i]);
}
}
void ChuyenMang2ChieuThanhMang1Chieu(int a[][max], int d, int c, int b[], int& n) {
n = 0;
for (int i = 0; i < d * c; i++) {
b[n++] = a[i / c][i % c];
}
}
void SapXepMangGiamDan(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++)
if (a[i] < a[j]) {
Swap(a[i], a[j]);
}
}
}
void TaoMang_I_TuMang_A_XoanOcGiamDanNguocKimDongHo(int a[][max], int I[][max], int d, int c) {
SaoChepMang(a, I, d, c);
int k[max];
int n = 0;
ChuyenMang2ChieuThanhMang1Chieu(I, d, c, k, n);
int x = 0;
int temp = 0;
int j = 0;
do {
for (int i = 0; i < c - x; i++) {
I[i][x] = k[temp++];
}
for (int i = x + 1; i < d - x; i++) {
I[c - x - 1][i] = k[temp++];
}
for (int i = c - x - 2; i >= x; i--) {
I[i][d - x - 1] = k[temp++];
}
for (int i = d - x - 2; i > x; i--) {
I[x][i] = k[temp++];
}
x++;
j++;
} while (j < d / 2);
if (d % 2 == 1 && c % 2 == 1) {
I[d / 2][c / 2] = k[temp];
}
}
void XoanOc(int MT[][max], int m, int n)
{
int b[max];
int k = 0;
ChuyenMang2ChieuThanhMang1Chieu(MT, m, n, b, k);
int t = 0;
int i = 0;
int h = 0;
do
{
for (int j = i; j < n - i; j++)
MT[j][i] = b[h++];
for (int k = i + 1; k < m - i; k++)
MT[n - i - 1][k] = b[h++];
for (int k = n - i - 2; k >= i; k--)
MT[k][m - i - 1] = b[h++];
for (int k = m - i - 2; k > i; k--)
MT[i][k] = b[h++];
i++;
t++;
} while (t < m / 2);
if (m % 2 == 1 && n % 2 == 1) MT[m / 2][n / 2] = b[h];
}
void Menu() {
cout << "\n\t===============================================================================";
cout << "\n\t[] MENU []";
cout << "\n\t===============================================================================";
cout << "\n\t[] 1.Nhap Mang thu cong []";
cout << "\n\t[] 2.Tao mang random []";
cout << "\n\t[] 3.Tao Mang tu file []";
cout << "\n\t[] 4.Tinh gia tri tbc cua ptu tren bien, DCC&DCP []";
cout << "\n\t[] 5.Liet Ke DS ptu cua tung cot chua toan bo so thinh vuong []";
cout << "\n\t[] 6.Dong co tb nhan cua cac snt lon nhat []";
cout << "\n\t[] 7.Hoan vi 2 cot []";
cout << "\n\t[] 8.Tao mang B tu Mang A sao cho cac dong chan tang, le giam dan []";
cout << "\n\t[] 9.Tao 2 mang C&D tu mang a, mang C toan duong & mang D toan am []";
cout << "\n\t[] 10.Tao ma tran E kich thuoc nho hon mang A dem so lan xuat hien E trong A []";
cout << "\n\t[] 11.Tao mang F bang cach dich phai xoay vong k lan trai->phai []";
cout << "\n\t[] 12.Tao mang I xoan oc giam dan nguoc chieu kim dong ho tu mang A []";
cout << "\n\t[] 0.thoat []";
cout << "\n\t===============================================================================";
cout << "\n\t===============================================================================";
}
void ThucThi() {
Menu();
int a[max][max];
int d, c;
int luachon;
do
{
cout << "\nNhap lua chon: ";
cin >> luachon;
if (luachon == 1) {
NhapDongCot(d, c);
NhapMang(a, d, c);
XuatMang(a, d, c);
}
else if (luachon == 2)
{
NhapDongCot(d, c);
TaoMangRandom(a, d, c);
XuatMang(a, d, c);
}
else if (luachon == 3)
{
NhapDongCot(d, c);
TaoMangTuFile(a, d, c, "../Data/inputc1.txt");
XuatMang(a, d, c);
}
else if (luachon == 4)
{
cout << "\nTBC cac phan tu tren bien cua mang la: " << TinhTBCptuTrenBien(a, d, c);
double x = TinhTBCptuTrenDCC(a, d, c);
if (x == -99) {
cout << "\nKhong phai ma tran vuon ! khong co DCC & DCP";
}
else
{
cout << "\nTBC cac phan tu tren DCC cua mang la: " << x;
x = TinhTBCptuTrenDCP(a, d, c);
cout << "\nTBC cac phan tu tren DCP cua mang la: " << x;
}
}
else if (luachon == 5)
{
LietKePhanTuCuaCotChuaToanSoThinhVuong(a, d, c);
}
else if (luachon == 6)
{
double Max;
int x = MaxTBNSNTTrenDong(a, d, c, Max);
cout << "\nTBN cua cac SNT tren dong " << x << " lon nhat voi: " << Max;
}
else if (luachon == 7)
{
int x, y;
do {
cout << "\n Nhap cot can hoan vi : ";
cin >> x;
if (x > max || x < 0)
{
cout << "cot >=0 va <" << max << "\nNhap lai di !";
}
} while (x > max || x < 0);
do {
cout << "\n Hoan vi cot " << x << " va cot: ";
cin >> y;
if (y > max || y < 0)
{
cout << "cot >=0 va <" << max << "\nNhap lai di !";
}
} while (y > max || y < 0);
HoanVi2Cot(a, d, c, x, y);
cout << "\nMang sau khi hoan vi cot " << x << " va cot " << y << endl;
XuatMang(a, d, c);
}
else if (luachon == 8)
{
int b[max][max];
TaoMang_B_TuMang_A_SaoChoChanTangLeGiamTrenDong(a, d, c, b);
cout << "\nMang A ban dau:";
XuatMang(a, d, c);
cout << "\nMang B Chan tang le giam tren cac dong:";
XuatMang(b, d, c);
}
else if (luachon == 9)
{
int C[max][max], D[max][max];
TaoMang_C_D_TuMang_A_Mang_C_ToanDuong_D_ToanAm(a, d, c, C, D);
cout << "\nMang C:";
XuatMang(C, d, c);
cout << "\nMang D:";
XuatMang(D, d, c);
}
else if (luachon == 10)
{
}
else if (luachon == 2)
{
}
else if (luachon == 12)
{
/*int I[max][max];
TaoMang_I_TuMang_A_XoanOcGiamDanNguocKimDongHo(a, I, d, c);
XuatMang(I, d, c);*/
XoanOc(a, d, c);
XuatMang(a, d, c);
}
} while (luachon != 0);
}
int main() {
ThucThi();
//system("pause");
return 0;
}
Tại sao không run code được?
Tại sao bạn chỉ “vứt” một đống mã lên rồi hỏi câu cụt lủn như vậy?
- “Không run code” của bạn là gì? Không biên dịch được, khi chạy báo lỗi, chạy không in ra gì, không nhập vào được?
- Bạn chạy trên IDE gì?
- Trình biên dịch nào?
4 Likes