Advertisement
rnort

Untitled

Sep 11th, 2012
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. // variant-12.cpp : Defines the entry point for the console application.
  2. //
  3. // 1    Реализовать функцию вставки строки в вещественную матрицу.
  4. // В параметрах функции передается матрица, ее размеры, номер
  5. // вставляемой строки и массив, который содержит значения новой строки.
  6. // Пользователь вводит новую строку и указывает, на какую
  7. // позицию ее вставлять. Матрица создается динамически.
  8.  
  9. #include "stdafx.h"
  10. #include <stdlib.h>
  11.  
  12. void insertRow( double** targetMatrix, int width, int height, int targetRow,
  13.                double* sourceArray);
  14. void swap( double* a, double* b);
  15.  
  16. int main(int argc, char* argv[])
  17. {
  18.     const int height = 10;
  19.     const int width = 5;
  20.     double** testMatrix = (double**)malloc(height * sizeof(double*) );
  21.     for (int i = 0; i < height; ++i)
  22.         testMatrix[i] = (double*)malloc(width * sizeof(double));
  23.    
  24.     for (int i = 0; i < height; ++i){
  25.         for (int j = 0; j < width; ++j){
  26.             testMatrix[i][j] = rand() % 10;
  27.             //scanf("%lf", testMatrix[i][j]);
  28.             printf("%lf ", testMatrix[i][j]);
  29.         }
  30.         printf("\n");
  31.     }
  32.  
  33.     double testArray[5];
  34.     int targetRow = -1;
  35.    
  36.     puts("Enter array >");
  37.     for( int i = 0; i < width; ++i)
  38.         scanf_s("%lf", &testArray[i]);
  39.     puts("Enter target row >");
  40.     scanf_s("%d", &targetRow); 
  41.  
  42.     insertRow( testMatrix, width, height, targetRow, testArray);
  43.  
  44.     for (int i = 0; i < height + 1; ++i){
  45.         for (int j = 0; j < width; ++j){
  46.             printf("%lf ", testMatrix[i][j]);
  47.         }
  48.         printf("\n");
  49.     }
  50.  
  51.     return 0;
  52. }
  53.  
  54. void insertRow( double** targetMatrix, int width, int height, int targetRow,
  55.                double* sourceArray)
  56. {
  57.  
  58.     targetMatrix = (double**)realloc( targetMatrix, (height+1)*sizeof(double*));
  59.        
  60.     for (int j = height; j != targetRow; --j){
  61.         targetMatrix[j] = targetMatrix[j-1];
  62.     }
  63.     targetMatrix[targetRow] = (double*)malloc( sizeof(double) * width);
  64.    
  65.     for (int i = 0; i < width; ++i)
  66.         targetMatrix[targetRow][i] = sourceArray[i];
  67.    
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement