Переписать код перемножения строк и столбцов матрицы с С++ - 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
- Выводим матрицу на экран
- Запрашиваем номер строки и столбца
- Вычисляем скалярное произведение
- Выводим скалярное произведение на экран
- Удаляем массив
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д