Перевести код с C++ - C (СИ) (71946)
Формулировка задачи:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int n, max, str, stl,**Mas,i,j;
cout << "Vvedite kol-vo elementov po gorizontali, po vertikali:\n";
cin >> n;
Mas = new int*[n];
for (i = 0; i<n; i++)
Mas[i] = new int[n];
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
Mas[i][j]=rand()%100;
cout << Mas[i][j] << "\t";
}
cout << endl;
}
max=Mas[0][0];
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
if (Mas[i][j]>max)
{
max=Mas[i][j];
str=i+1;
stl=j+1;
}
}
}
cout << "\nMaximum: " << max << " Raspolojen v " << str << " stroke, stolbze " << stl << endl;
return 0;
}Решение задачи: «Перевести код с C++»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, max, str, stl,**Mas,i,j;
printf("Vvedite kol-vo elementov po gorizontali, po vertikali:\n");
scanf("%d", &n);
Mas = (int **) malloc(n * sizeof(int *));
for (i = 0; i<n; i++)
Mas[i] = (int *) malloc(n * sizeof(int));
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
Mas[i][j]=rand()%100;
printf("%d\t", Mas[i][j]);
}
printf("\n");
}
max=Mas[0][0];
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (Mas[i][j] > max)
{
max = Mas[i][j];
str = i + 1;
stl = j + 1;
}
}
}
printf("\nMaximum: %d Raspolojen v %d stroke, stolbze %d\n", max, str, stl);
for (i = 0; i < n; i++)
free(Mas[i]);
free(Mas);
return 0;
}
Объяснение кода листинга программы
- Вводится количество строк и столбцов матрицы с помощью функции scanf.
- С помощью функции malloc выделяется память под массив указателей на int, который будет представлять собой матрицу.
- В цикле for производится выделение памяти под каждый элемент матрицы.
- Внутренний цикл заполняет матрицу случайными числами от 0 до 99 с помощью функции rand().
- Внешний цикл находит максимальное значение в матрице и запоминает индексы строки и столбца, в которых оно было найдено.
- Выводится сообщение с максимальным значением и его индексами.
- Внутренний цикл for освобождает память, выделенную под каждый элемент матрицы.
- Освобождается память, выделенная под массив указателей на int.
- Функция return завершает работу программы.