Перевод кода из С++ в С - C (СИ) (149256)
Формулировка задачи:
Помогите пожалуйста перевести код из С++ и С
#include <iostream>
using namespace std;
// В М
void PrintMatr(int **mas, int m) {
int i, j;
for (i = 0; i<m; i++) {
for (j = 0; j<m; j++)
cout << mas[i][j] << " ";
cout << endl;
}
}
// С М
void GetMatr(int **mas, int **p, int i, int j, int m) {
int ki, kj, di, dj;
di = 0;
for (ki = 0; ki<m - 1; ki++) {
if (ki == i) di = 1;
dj = 0;
for (kj = 0; kj<m - 1; kj++) {
if (kj == j) dj = 1;
p[ki][kj] = mas[ki + di][kj + dj];
}
}
}
//Р В
int Determinant(int **mas, int m) {
int i, j, d, k, n;
int **p;
p = new int*[m];
for (i = 0; i<m; i++)
p[i] = new int[m];
j = 0; d = 0;
k = 1; //(-1) в степени i
n = m - 1;
if (m<1) cout << "вычислить невозможно!";
if (m == 1) {
d = mas[0][0];
return(d);
}
if (m == 2) {
d = mas[0][0] * mas[1][1] - (mas[1][0] * mas[0][1]);
return(d);
}
if (m>2) {
for (i = 0; i<m; i++) {
GetMatr(mas, p, i, 0, m);
cout << mas[i][j] << endl;
PrintMatr(p, n);
d = d + k * mas[i][0] * Determinant(p, n);
k = -k;
}
}
return(d);
}
// Основная функция
int main() {
int m, i, j, d;
int **mas;
system("chcp 1251");
system("cls");
cout << "Введите размерность: ";
cin >> m;
mas = new int*[m];
for (i = 0; i<m; i++) {
mas[i] = new int[m];
for (j = 0; j<m; j++) {
cout << "mas[" << i << "][" << j << "]= ";
cin >> mas[i][j];
}
}
PrintMatr(mas, m);
d = Determinant(mas, m);
cout << " равен " << d;
cin.get(); cin.get();
return 0;
}Решение задачи: «Перевод кода из С++ в С»
textual
Листинг программы
getch()