Консультация № 110241
20.11.2007, 09:47
0.00 руб.
0 5 5
Здрасте!Помогите с программой:Данны вешественные массивы А[15],B[15].Для каждого массива определить наибольшее из отрицательных значений.
Помогите пожалуйсто!

Обсуждение

Неизвестный
20.11.2007, 10:04
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Только надо ввести свои массивы вместо 0
A[15]={0},
Например
A[15]={-1.2, 0, 0.5, -0.45 ... и т.д.}

Тоже самое и для масива B


Приложение:
#include <vcl.h>#include <conio.h>#include <stdio.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){ float A[15]={0},B[15]={0}, MinA = 0, MinB = 0; for (int i = 0; i < 15; i++) { if (A[i]<MinA) MinA = A[i]; if (B[i]<MinB) MinB = B[i]; } printf("Миннимальное значение в массиве\n"); printf("A - %f\n", MinA); printf("B - %f\n", MinB); getch(); return 0;}
Неизвестный
20.11.2007, 10:51
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Возьму на себя смелость немного подредактировать решение Архипова Александра Леонидовича, т.к. его программа ищет наименьшее значение массива (наименьшее из отрицательных чисел).

Приложение:
#include <vcl.h>#include <conio.h>#include <stdio.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){ float A[15]={0},B[15]={0}, MinA = 0, MinB = 0; for (int i = 0; i < 15; i++) { if(A[i]<0) { if(MinA==0)MinA=A[i]; if(MinA<A[i])MinA=A[i]; } if(B[i]<0) { if(MinB==0)MinB=B[i]; if(MinB<A[i])MinB=B[i]; } }//MinA (MinB) равно нулю, то в массиве A(B) нет отрицательных элементов printf("Наибольшее из отрицательных чисел в массиве\n"); printf("A - %f\n", MinA); printf("B - %f\n", MinB); getch(); return 0;}
Неизвестный
20.11.2007, 16:32
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
В приложении решение с вводом элемнтов массивов и проверкой на отсутствие отрицательных элементов.

Приложение:
#include <iostream.h>#include <conio.h>int main(){ int i, i_MaxA = 0, i_MaxB = 0; float A[15], MaxA = 0; float B[15], MaxB = 0; cout << "Введите 15 элемнтов массива A:\n"; for ( i = 0; i < 15; i++ ) cin >> A[i]; cout << "Введите 15 элемнтов массива B:\n"; for ( i = 0; i < 15; i++ ) cin >> B[i]; for ( i = 0; i < 15; i++ ) if ( A[i] < 0 ) { MaxA = A[i]; i_MaxA = i; break; } for ( i = 0; i < 15; i++ ) if ( B[i] < 0 ) { MaxB = B[i]; i_MaxB = i; break; } if ( MaxA == 0 ) cout << "В массиве A нет отрицательных элементов\n"; else { for ( i = i_MaxA+1; i < 15; i++ ) if ( A[i] < 0 ) if ( A[i] > MaxA ) MaxA = A[i]; cout << "В массиве A наибольший из отрицательных элементов равен" << MaxA << endl; } if ( MaxB == 0 ) cout << "В массиве B нет отрицательных элементов\n"; else { for ( i = i_MaxB+1; i < 15; i++ ) if ( B[i] < 0 ) if ( B[i] > MaxB ) MaxB = B[i]; cout << "В массиве B наибольший из отрицательных элементов равен" << MaxB << endl; } return 0;}
Неизвестный
20.11.2007, 22:18
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!

Держите!
Максимальный среди отрицательных ищем сразу при вводе...

Приложение:
#include<iostream.h>#include<conio.h>void main(){float A[15],B[15];int i,j;float A_max,B_max;A_max=B_max=-32000;cout<<"Input elemetns of array A: \n";for(i=0;i<15;i++) { cout<<"A["<<i<<"] = "; cin>>A[i]; if(A[i]<0 && A[i]>A_max) { A_max=A[i]; } }cout<<"Input elemetns of array A: \n";for(i=0;i<15;i++) { cout<<"B["<<i<<"] = "; cin>>B[i]; if(B[i]<0 && B[i]>B_max) { B_max=B[i]; } }cout<<"\nIn array A - "<<A_max;cout<<"\nIn array B - "<<B_max;getch();}
Неизвестный
21.11.2007, 03:49
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Вот STL-ный вариант решения вашей задачи...

Приложение:
#include <stdlib.h>#include <time.h>#include <vector>#include <algorithm>#include <functional>#include <iostream>using namespace std;int main(int argc, char* argv[]) { const int size = 15; vector<int> A(size); vector<int> B(size); int r_limit = 100; srand((unsigned) time(NULL)); for(int i=0; i<size; i++) { A[i] = rand()%(r_limit*2) - r_limit; B[i] = rand()%(r_limit*2) - r_limit; } cout << "Array A:" << endl; for(int i=0; i<size; i++) cout << A[i] << " "; cout << endl << "Array B:" << endl; for(int i=0; i<size; i++) cout << B[i] << " "; int max_negative; A.erase(remove_if(A.begin(), A.end(), bind2nd(greater_equal<int>(), 0)), A.end()); max_negative = static_cast<int>(*max_element(A.begin(), A.end())); cout << endl << endl << "Maximum negative element in array A: " << max_negative << endl; B.erase(remove_if(B.begin(),B.end(), bind2nd(greater_equal<int>(), 0)), B.end()); max_negative = static_cast<int>(*max_element(B.begin(), B.end())); cout << "Maximum negative element in array B: " << max_negative << endl; return 0;}
Форма ответа