Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // variant-12.cpp : Defines the entry point for the console application.
- //
- // 1 Реализовать функцию вставки строки в вещественную матрицу.
- // В параметрах функции передается матрица, ее размеры, номер
- // вставляемой строки и массив, который содержит значения новой строки.
- // Пользователь вводит новую строку и указывает, на какую
- // позицию ее вставлять. Матрица создается динамически.
- #include "stdafx.h"
- #include <stdlib.h>
- void insertRow( double** targetMatrix, int width, int height, int targetRow,
- double* sourceArray);
- void swap( double* a, double* b);
- int main(int argc, char* argv[])
- {
- const int height = 10;
- const int width = 5;
- double** testMatrix = (double**)malloc(height * sizeof(double*) );
- for (int i = 0; i < height; ++i)
- testMatrix[i] = (double*)malloc(width * sizeof(double));
- for (int i = 0; i < height; ++i){
- for (int j = 0; j < width; ++j){
- testMatrix[i][j] = rand() % 10;
- //scanf("%lf", testMatrix[i][j]);
- printf("%lf ", testMatrix[i][j]);
- }
- printf("\n");
- }
- double testArray[5];
- int targetRow = -1;
- puts("Enter array >");
- for( int i = 0; i < width; ++i)
- scanf_s("%lf", &testArray[i]);
- puts("Enter target row >");
- scanf_s("%d", &targetRow);
- insertRow( testMatrix, width, height, targetRow, testArray);
- for (int i = 0; i < height + 1; ++i){
- for (int j = 0; j < width; ++j){
- printf("%lf ", testMatrix[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
- void insertRow( double** targetMatrix, int width, int height, int targetRow,
- double* sourceArray)
- {
- targetMatrix = (double**)realloc( targetMatrix, (height+1)*sizeof(double*));
- for (int j = height; j != targetRow; --j){
- targetMatrix[j] = targetMatrix[j-1];
- }
- targetMatrix[targetRow] = (double*)malloc( sizeof(double) * width);
- for (int i = 0; i < width; ++i)
- targetMatrix[targetRow][i] = sourceArray[i];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement