Перевод программы с языка С# - C (СИ)
Формулировка задачи:
Кто разбирается перевидите программу на язык Си.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int m,n; do { Console.Clear(); Console.Write("введи M:"); } while (!int.TryParse(Console.ReadLine(), out m)); do { Console.Clear(); Console.WriteLine("M = " + m.ToString()); Console.Write("введи N: "); } while (!int.TryParse(Console.ReadLine(), out n)); Random rnd = new Random(); int[,] matr = new int[m, n]; Console.WriteLine("\nматрица"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { matr[i, j] = rnd.Next(10); Console.Write(matr[i, j] + " "); } Console.WriteLine(); } int max=matr[0,0], iMax=0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (matr[i, j] > max) { max = matr[i, j]; iMax = i; } } } Console.WriteLine("\nта самая строка"); for (int j = 0; j < n; j++) { Console.Write(matr[iMax, j] + " "); } Console.ReadKey(); } } }
Решение задачи: «Перевод программы с языка С#»
textual
Листинг программы
#include <stdio.h> #include "time.h" #include <stdlib.h> int main(int argc, char **argv){ int m, n, **matr, max, iMax=0; srand(time(NULL)); do{ printf("Enter M: "); scanf("%d", &m); printf("Enter N: "); }while(!scanf("%d", &n)); matr=(int**)malloc(m*sizeof(int*)); printf("\nMatrix:\n"); for(int i=0;i<m;i++){ matr[i]=(int*)malloc(n*sizeof(int)); for(int j=0;j<n;j++){ matr[i][j]=rand()%10; printf("%2d", matr[i][j]); } printf("\n"); } max=matr[0][0]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(matr[i][j]>max){ max=matr[i][j]; iMax=i; } } } printf("\nThis row: "); for(int j=0;j<n;j++){ printf("%2d", matr[iMax][j]); } printf("\n"); for(int i=0;i<m;i++){ free(matr[i]); } free(matr); getchar(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , . - Объявляются переменные: — m, n — входные параметры функции main, представляют собой количество строк и столбцов матрицы соответственно; — matr — указатель на указатель целых чисел, который будет представлять собой матрицу; — max — переменная для хранения максимального элемента матрицы; — iMax — переменная для хранения номера строки с максимальным элементом.
- Инициализируется генератор случайных чисел с помощью функции srand(time(NULL)).
- В цикле do-while считываются значения m и n до тех пор, пока они корректно введены.
- Выделяется память под матрицу с помощью функции malloc(msizeof(int)).
- Выводится шаблон для ввода элементов матрицы.
- В цикле два вложенных циклах заполняются элементы матрицы случайными числами от 0 до 9 с помощью функции rand()%10.
- Выводится на экран содержимое матрицы.
- Находится максимальное значение в матрице.
- Находится номер строки с максимальным значением.
- Выводится на экран строка с максимальным значением.
- Освобождается память, выделенная под матрицу.
- Программа ожидает нажатия любой клавиши с помощью функции getchar().
- Функция main возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д