• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Последовательность C++, подскажите как надо

Киры4

Ученик
Регистрация
8 Май 2013
Сообщения
10
Реакции
0
Баллы
0
Последовательность 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;
}
 
Код:
#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;
}

Только переделайте к своему компилятору
 
Благодарю. Вы мне очень помогли.
 
Назад
Сверху