
- •Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Вариант №15
- •Вариант №16
- •Вариант №17
- •Вариант №18
- •Вариант №19
- •Вариант №20
- •Вариант №21
- •Вариант №22
- •Вариант №23
- •Вариант №24
- •Вариант №25
- •Вариант №26
- •Вариант №27
- •Вариант №28
- •Вариант №29
- •Вариант №30
- •Вариант №31
- •Вариант №32
- •Вариант №33
- •Вариант №34
- •Вариант №35
- •Вариант №36
- •Вариант №37
- •Вариант №38
- •Вариант №39
- •Вариант №40
Вариант №7
Дана матрица вещественных чисел A[N][M]. Сформировать матрицу B[N][M], поместив на место первой строки и первого столбца те, на пересечении которых находится максимальный по модулю элемент. #include <iostream> #include <math.h> void inputA(double **a, int n, int m){ puts("Введите элементы матрицы А:"); for(int i=0; i<n; ++i) for(int j=0; j<m; ++j) scanf("%lf", &a[i][j]);} void outputArr(double **a, int n, int m){ for(int i=0; i<n; ++i){ for(int j=0; j<m; ++j) printf("%lf\t", a[i][j]); printf("\n");}} void IndexMax(double **a, int n, int m, int &i_max, int &j_max){ double max=fabs(a[0][0]); i_max=0;j_max=0; for(int i=1; i<n; ++i){ for(int j=1; j<m; ++j) if(fabs(a[i][j])>max){ max=fabs(a[i][j]); i_max=i;j_max=j;} }} void Transform(double **a, double **b, int n, int m) { int indexR, indexC; IndexMax(a,n,m, indexR, indexC); //переписываем в b матрицу а for(int i=0; i<n; ++i){ for(int j=0; j<m; ++j){b[i][j]=a[i][j];} } //выносим на первое место, сдвигаем double buf; for(int j=0; j<m; ++j){ buf=b[indexR][j];int k=indexR; while(k>0){ b[k][j]=b[k-1][j]; --k;} b[0][j]=buf;} //выносим столбец вперед, сдвигаем for(int i=0; i<n; ++i){ buf=b[i][indexC]; int k=indexC; while(k>0){ b[i][k]=b[i][k-1]; --k;} b[i][0]=buf;}} void main(){ setlocale(LC_ALL, "Russian"); double **A, **B; int n, m; puts("Кол-во строк:"); scanf("%d",&n); puts("Кол-во столбцов:"); scanf("%d", &m); if(n<=0||m<=0){puts("Ошибка!!!");system("pause"); return;} A=new double*[n];B=new double*[n]; for(int i=0; i<n; ++i){ A[i]=new double[m];B[i]=new double[m];} inputA(A, n, m); Transform(A, B, n, m); puts("Матрица А:");outputArr(A, n, m); puts("Матрица В:");outputArr(B, n, m); //удаление матриц for(int i=0; i<n; ++i) { delete [] A[i]; delete [] B[i]; } delete [] A; delete [] B; } |
Дан массив действительных чисел X[N]. Вычислить Y = max (X[i]) - min (X[i]) . Вывести вычисленное значение на экран. #include <iostream> using namespace std;
void Vvod(int n, double *arr) { for(int i = 0; i < n; i++) { cout << "arr[" << i << "]: "; cin >> arr[i]; } }
void Vivod(int n, double *arr) { for(int i = 0; i < n; i++) { cout << arr[i] << " "; } }
void main() { int n; cout << "Razmer: "<<endl; cin >> n;
double *A = new double[n];
cout << "Massiv A" << endl; Vvod(n, A); double max = -1000; double min = 1000; double result; for(int i = 0; i < n; i++) { if(A[i] > max) { max = A[i]; } if(A[i] < min) { min = A[i]; } } result = max - min; cout << "\nMassiv A" << endl; Vivod(n, A); cout << "\nMax - Min = " << result; cout << endl;
delete[] A; } |