Переписать код перемножения строк и столбцов матрицы с С++ - C (СИ)
Формулировка задачи:
Здравствуйте, помогите переделать исходный текст программы из С++ в СИ.
Здесь задается матрица NxN, заполняющаяся рандомными числами от 0 до 10, после указания строки и столбца, программа их перемножает и выдает результат.
Листинг программы
- #include <iostream>
- #include <ctime> // в ней функция time
- #include <conio.h>
- using namespace std;
- int main()
- {
- srand(time(NULL)); // Инициализируем генератор случайных чисел.
- int n = 0;
- cout<< "Enter the size: ";
- cin >> n; // Считываем с клавиатуры n
- int **a = new int* [n]; // Создаем массив указателей
- for (int i = 0; i < n; i++)
- {
- a[i] = new int [n]; // Создаем элементы
- }
- // А дальше работа как с обычным массивом.
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- a[i][j] = rand() % 10+1; // Каждый элемент случайному числу от 1 до 10
- cout << a[i][j] << " "; // Вывести элементы на консольку
- }
- cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
- }
- //Введение номера строки
- int m;
- cout << "Enter the line";
- cin >> m;
- //Введение номера столбца
- int l;
- cout << "Enter the column";
- cin>> l;
- //Скалярное произведение
- int scalar=0;
- for (int i=0; i<n; i++)
- { scalar += a[m-1][i]*a[i][l-1];
- }
- //вывод ответа
- cout << scalar<< endl;
- // Удаление массива
- for (int i = 0; i < n; i++)
- {
- delete[]a[i]; // Удаляем каждый элемент
- }
- delete [] a; // А потом массив
- cout<<"Enter any key";
- cin.get();
- getch();
- return 0;
- }
Решение задачи: «Переписать код перемножения строк и столбцов матрицы с С++»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main()
- {
- int n, m, l, i, j, scalar = 0;
- int** a;
- srand(time(NULL)); // Инициализируем генератор случайных чисел.
- printf("Enter the size: ");
- scanf("%d", &n); // Считываем с клавиатуры n
- a = (int**) malloc(sizeof(int*) * n); // Создаем массив указателей
- for (i = 0; i < n; i++)
- {
- a[i] = (int*) malloc(sizeof(int) * n); // Создаем элементы
- }
- // А дальше работа как с обычным массивом.
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < n; j++)
- {
- a[i][j] = rand() % 10 + 1; // Каждый элемент случайному числу от 1 до 10
- printf("%3d", a[i][j]); // Вывести элементы на консольку
- }
- printf("\n"); // Двумерный массив. Строка кончилась, переводим строку и на консоли
- }
- //Введение номера строки
- printf("Enter the line: ");
- scanf("%d", &m);
- //Введение номера столбца
- printf("Enter the column: ");
- scanf("%d", &l);
- //Скалярное произведение
- for (i = 0; i < n; i++)
- {
- scalar += a[m - 1][i] * a[i][l - 1];
- }
- //вывод ответа
- printf("%d\n", scalar);
- // Удаление массива
- for (i = 0; i < n; i++)
- {
- free(a[i]);// Удаляем каждый элемент
- }
- free(a); // А потом массив
- system("pause");
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Инициализируем генератор случайных чисел
- Запрашиваем размер матрицы
- Создаем массив указателей
- Заполняем матрицу случайными числами от 1 до 10
- Выводим матрицу на экран
- Запрашиваем номер строки и столбца
- Вычисляем скалярное произведение
- Выводим скалярное произведение на экран
- Удаляем массив
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д