Перевод программы с языка С# - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: , , .
  2. Объявляются переменные: — m, n — входные параметры функции main, представляют собой количество строк и столбцов матрицы соответственно; — matr — указатель на указатель целых чисел, который будет представлять собой матрицу; — max — переменная для хранения максимального элемента матрицы; — iMax — переменная для хранения номера строки с максимальным элементом.
  3. Инициализируется генератор случайных чисел с помощью функции srand(time(NULL)).
  4. В цикле do-while считываются значения m и n до тех пор, пока они корректно введены.
  5. Выделяется память под матрицу с помощью функции malloc(msizeof(int)).
  6. Выводится шаблон для ввода элементов матрицы.
  7. В цикле два вложенных циклах заполняются элементы матрицы случайными числами от 0 до 9 с помощью функции rand()%10.
  8. Выводится на экран содержимое матрицы.
  9. Находится максимальное значение в матрице.
  10. Находится номер строки с максимальным значением.
  11. Выводится на экран строка с максимальным значением.
  12. Освобождается память, выделенная под матрицу.
  13. Программа ожидает нажатия любой клавиши с помощью функции getchar().
  14. Функция main возвращает 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы