Пример решения задачи на C++
Задача
Динамически создать массив (10;6) и напечатать его элементы. Найти наименьшие элементы каждой строки и переместить их в массив A. Вывод наименьшего элемента строки матрицы оформить в виде подпрограммы.
Решение #include <stdlib.h> #include <time.h> #include <iostream> #include <iomanip> #include <windows.h> void display( double ** data, const int m, int n); void de_allocate( double ** data, int m, int n); void minar( double ** data, double * out, int m, int n); void displaysingle( double * data, int m, int n); char * DosStr( char * src); int main() { double ** data; double * out; int m = 10 ; int n = 6 ; srand( time( NULL)); try { data = new double *[ m]; for ( int j = 0 ; j < m; j++) data[ j] = new double [ n]; } catch ( std:: bad_alloc) { std:: cout << "Could not allocate memory" ; exit(- 1 ); } try { out = new double [ m]; } catch ( std:: bad_alloc) { std:: cout << "Could not allocate memory" ; exit(- 1 ); } for ( int i = 0 ; i < m; i++) for ( int j = 0 ; j < n; j++) data[ i][ j] = (( rand() % 198 )- 99 )/ 10.0 ; display( data, m, n); minar( data, out, m, n); displaysingle( out, m, n); de_allocate( data, m, n); system( "pause" ); return 0 ; } void display( double ** data, int m, int n) { std:: cout << DosStr( "Начальный массив:" ) << std:: endl; for ( int i = 0 ; i < m; i++) { for ( int j = 0 ; j < n; j++) { if ( data[ i][ j]>= 0 ) std:: cout << " " ; std:: cout << std:: fixed << std:: setprecision( 1 ) << data[ i][ j] << " " << "\t" ; } std:: cout << std:: endl; } } void displaysingle( double * data, int m, int n) { std:: cout << std:: endl; std:: cout << DosStr( "Минимальные элементы в строках:" ) << std:: endl; for ( int i = 0 ; i < m; i++) { if ( data[ i]>= 0 ) std:: cout << " " ; std:: cout << std:: fixed << std:: setprecision( 1 ) << data[ i] << " " << std:: endl; } std:: cout << std:: endl; } void minar( double ** data, double * out, int m, int n) { long double min; for ( int i = 0 ; i < m; i++) { min = data[ i][ 1 ]; for ( int j = 0 ; j < n; j++) { if ( data[ i][ j]< min) min = data [ i][ j]; out[ i] = min; } } } void de_allocate( double ** data, int m, int n) { for ( int i = 0 ; i < m; i++) delete [] data[ i]; delete [] data; } char * DosStr( char * src) { static char buf[ 1024 ]; CharToOem( src, buf); return buf; }
:: Рекомендуемая литература .
Посетите интернет-магазины:
Озон ,
Болеро
VIP Казань — Казань для достойных людей