Переписать код перемножения строк и столбцов матрицы с С++ - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите переделать исходный текст программы из С++ в СИ. Здесь задается матрица NxN, заполняющаяся рандомными числами от 0 до 10, после указания строки и столбца, программа их перемножает и выдает результат.
Листинг программы
  1. #include <iostream>
  2. #include <ctime> // в ней функция time
  3. #include <conio.h>
  4. using namespace std;
  5. int main()
  6. {
  7. srand(time(NULL)); // Инициализируем генератор случайных чисел.
  8. int n = 0;
  9. cout<< "Enter the size: ";
  10. cin >> n; // Считываем с клавиатуры n
  11. int **a = new int* [n]; // Создаем массив указателей
  12. for (int i = 0; i < n; i++)
  13. {
  14. a[i] = new int [n]; // Создаем элементы
  15. }
  16. // А дальше работа как с обычным массивом.
  17. for (int i = 0; i < n; i++)
  18. {
  19. for (int j = 0; j < n; j++)
  20. {
  21. a[i][j] = rand() % 10+1; // Каждый элемент случайному числу от 1 до 10
  22. cout << a[i][j] << " "; // Вывести элементы на консольку
  23. }
  24. cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
  25. }
  26. //Введение номера строки
  27. int m;
  28. cout << "Enter the line";
  29. cin >> m;
  30. //Введение номера столбца
  31. int l;
  32. cout << "Enter the column";
  33. cin>> l;
  34. //Скалярное произведение
  35. int scalar=0;
  36. for (int i=0; i<n; i++)
  37. { scalar += a[m-1][i]*a[i][l-1];
  38. }
  39. //вывод ответа
  40. cout << scalar<< endl;
  41. // Удаление массива
  42. for (int i = 0; i < n; i++)
  43. {
  44. delete[]a[i]; // Удаляем каждый элемент
  45. }
  46. delete [] a; // А потом массив
  47. cout<<"Enter any key";
  48. cin.get();
  49. getch();
  50. return 0;
  51. }

Решение задачи: «Переписать код перемножения строк и столбцов матрицы с С++»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main()
  6. {
  7.    int n, m, l, i, j, scalar = 0;
  8.    int** a;
  9.  
  10.    srand(time(NULL)); // Инициализируем генератор случайных чисел.
  11.  
  12.    printf("Enter the size:  ");
  13.    scanf("%d", &n); // Считываем с клавиатуры n
  14.  
  15.    a = (int**) malloc(sizeof(int*) * n); // Создаем массив указателей
  16.    for (i = 0; i < n; i++)
  17.    {
  18.       a[i] = (int*) malloc(sizeof(int) * n); // Создаем элементы
  19.    }
  20.  
  21.    // А дальше работа как с обычным массивом.
  22.    for (i = 0; i < n; i++)
  23.    {
  24.       for (j = 0; j < n; j++)
  25.       {
  26.          a[i][j] = rand() % 10 + 1; // Каждый элемент случайному числу от 1 до 10
  27.          printf("%3d", a[i][j]); // Вывести элементы на консольку
  28.       }
  29.       printf("\n"); // Двумерный массив. Строка кончилась, переводим строку и на консоли
  30.    }
  31.  
  32.    //Введение номера строки
  33.    printf("Enter the line: ");
  34.    scanf("%d", &m);
  35.  
  36.    //Введение номера столбца
  37.    printf("Enter the column: ");
  38.    scanf("%d", &l);
  39.  
  40.    //Скалярное произведение
  41.    for (i = 0; i < n; i++)
  42.    {
  43.       scalar += a[m - 1][i] * a[i][l - 1];
  44.    }
  45.    //вывод ответа
  46.    printf("%d\n", scalar);
  47.  
  48.    // Удаление массива
  49.    for (i = 0; i < n; i++)
  50.    {
  51.       free(a[i]);// Удаляем каждый элемент
  52.    }
  53.    free(a); // А потом массив
  54.  
  55.    system("pause");
  56.  
  57.    return 0;
  58. }

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

  1. Включаем необходимые заголовочные файлы
  2. Инициализируем генератор случайных чисел
  3. Запрашиваем размер матрицы
  4. Создаем массив указателей
  5. Заполняем матрицу случайными числами от 1 до 10
  6. Выводим матрицу на экран
  7. Запрашиваем номер строки и столбца
  8. Вычисляем скалярное произведение
  9. Выводим скалярное произведение на экран
  10. Удаляем массив

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


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

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы