Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Последовательность C++, подскажите как надо (http://www.tehnari.ru/f41/t88403/)

Киры4 20.05.2013 14:36

Последовательность C++, подскажите как надо
 
Задание- найти отношение минимального элемента к максимальному среди элементов, предшествующих первому нулевому.Сделал отношение, предшествующее первому положительному.А как делать то же с первым нулевым-не вьеду.

#include "stdafx.h"
#include <iostream>
#include <locale.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout << "\nВведите количество элементов последовательности n = ";
cin >> n;
float a;
float min = 999;
float max = -999;
int fl = 0;
int i = 0;
while (i < n)
{
cout << "\nВведите элемент: ";
cin >> a;
if (a < min)
min = a;
if (fl < 1)
{
if (a <= 0)
{
if (a > max)
max = a;
}
else
fl = 1;
}
i++;
}
// cout << "\nmin = " << min;
// cout << "\nmax = " << max;
// cout << "\nfl = " << fl;
if (fl < 1)
cout << "\nНет положительных элементов.\n";
else
{
if (-999 == max)
cout << "\nНет элементов перед первым положительным.\n";
else
{
if (max == 0)
cout << "\nДеление на 0!\n";
else
{
float rel = min/max;
cout << "\nОтношение минимального элемента к максимальному среди предшествующих первому положительному: " << rel << "\n";
}
}
}
system("PAUSE");
return 0;
}

kreol 20.05.2013 22:20

Код:

#include <iostream>
#include <locale.h>

using namespace std;

int main(){
   
    setlocale(LC_ALL,"Russian");
    int n;
    cout << "\nВведите количество элементов последовательности n = ";
    cin >> n;
    float a, rez;

    if(n>1){
        cout << "\nВведите элемент: ";
        cin >> a;
        float _min = a, _max = a;
       
        if(a==0){
            cout << "\nПервый элемент не может быть нулём";
            return 0;
        }
       
        for(int i = 1; i < n; i++){
            cout << "\nВведите элемент: ";
            cin >> a;
            if(a!=0){
                _min = min(_min, a);
                _max = max(_max, a);
            }
            else{
                break;
            }
        }
        rez = _min / _max;
        cout << "\nmin/max = " << rez;
       
    }
    else{
        cout << "\nКоличество элементов должно быть больше 0";
    }
   
    return 0;
}

Только переделайте к своему компилятору

Киры4 21.05.2013 12:34

Благодарю. Вы мне очень помогли.


Часовой пояс GMT +4, время: 10:09.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.