Софтуерно Инженерство
Loading...
Yordan.Vachev avatar Yordan.Vachev 2 Точки

Odd/Even position

Напишете програма, която чете n-на брой числа, въведени от потребителя, и пресмята сумата, минимума и
максимума на числата на четни и нечетни позиции (броим от 1). Когато няма минимален / максимален
елемент, отпечатайте "No".
Изходът да се форматира в следния вид:
"OddSum=" + {сума на числата на нечетни позиции},
"OddMin=" + { минимална стойност на числата на нечетни позиции } / {“No”},
"OddMax=" + { максимална стойност на числата на нечетни позиции } / {“No”},
"EvenSum=" + { сума на числата на четни позиции },
"EvenMin=" + { минимална стойност на числата на четни позиции } / {“No”},
"EvenMax=" + { максимална стойност на числата на четни позиции } / {“No”}
Примерен вход и изход
вход изход вход изход вход изход вход изход
6
2
3
5
4
2
1
OddSum=9.00,
OddMin=2.00,
OddMax=5.00,
EvenSum=8.00,
EvenMin=1.00,
EvenMax=4.00
2
1.5
-2.5
OddSum=1.50,
OddMin=1.50,
OddMax=1.50,
EvenSum=-2.50,
EvenMin=-2.50,
EvenMax=-2.50
1
1
OddSum=1.00,
OddMin=1.00,
OddMax=1.00,
EvenSum=0.00,
EvenMin=No,
EvenMax=No

0 OddSum=0.00,
OddMin=No,
OddMax=No,
EvenSum=0.00,
EvenMin=No,
EvenMax=No

вход Изход вход изход вход изход вход изход
5
3
-2
8
11
-3
OddSum=8.00,
OddMin=-3.00,
OddMax=8.00,
EvenSum=9.00,
EvenMin=-2.00,
EvenMax=11.00
4
1.5
1.75
1.5
1.75
OddSum=3.00,
OddMin=1.50,
OddMax=1.50,
EvenSum=3.50,
EvenMin=1.75,
EvenMax=1.75
1
-5
OddSum=-5.00,
OddMin=-5.00,
OddMax=-5.00,
EvenSum=0.00,
EvenMin=No,
EvenMax=No

3
-1
-2
-3
OddSum=-4.00,
OddMin=-3.00,
OddMax=-1.00,
EvenSum=-
2.00,
EvenMin=-
2.00,
EvenMax=-2.00

#include <iostream>
#include <cmath>

using namespace std;

int main() {

    double n;
    cin >> n;

    double oddSum = 0.00;
    double oddMin = 1000000000.0;
    double oddMax = -1000000000.0;
    double evenSum = 0.00;
    double evenMin = 1000000000.0;
    double evenMax = -1000000000.0;

    for(int i = 1; i <= n; i++){
        double number;
        cin >> number;

        if (i % 2 == 0)
        {
            evenSum += number;

            if(number > evenMax){
                evenMax = number;
            }

            if(number < evenMin){
                evenMin = number;
            }
        }
        else
        {
            oddSum += number;

            if(number > oddMax){
                oddMax = number;
            }

            if(number < oddMin){
            oddMin = number;
            }
        }
    }

    cout.setf(ios::fixed);
    cout.precision(2);

    cout << "OddSum = " << oddSum << "," << endl;

    if (oddMin == 1000000000.0)
    {
        cout << "OddMin = No," << endl;
    }
    else
    {
        cout << "OddMin = " << oddMin << ","  << endl;
    }

    if (oddMax == -1000000000.0)
    {
        cout << "OddMax = No," << endl;
    }
    else
    {
        cout << "OddMax = " << oddMax << ","  << endl;
    }

    cout << "EvenSum = " << evenSum << ","  << endl;

    if (evenMin == 1000000000.0)
    {
        cout << "evenMin = No," << endl;
    }
    else
    {
        cout << "evenMin = " << evenMin << "," << endl;
    }

    if (evenMax == -1000000000.0)
    {
        cout << "evenMax = No" << endl;
    }
    else
    {
        cout << "evenMax = " << evenMax << endl;
    }

    return 0;
}


Нещо се омазва със закръглянето в judge изобщо не я приема иначе ми е ок на компилатора!

Тагове:
0
Programming Basics with C++ 13/07/2019 15:54:54
MariyanNikov avatar MariyanNikov 16 Точки

Оправи си формата при принтиране, изисква се да няма разстояния между стойността и равното,както и evenMax,трябва да е EvenMax с главно E.

Като submit-неш в Judge от Details можеш да видиш грешките си и ако са грешки във формата можеш да ги видиш там.

 

 

0
Yordan.Vachev avatar Yordan.Vachev 2 Точки

проблема ми е, че когато го пускам в моя компилатор изписва например 1.00 резултат, както и трябда да е, обаче като го пусна в judge ми го изисква като 1 и оттам всички резултати са ми грешни, пък аз съм му дал да ги закръгля до втория знак.

0
13/07/2019 18:09:29
MariyanNikov avatar MariyanNikov 16 Точки

https://pastebin.com/Rk6Hw40T

Това е твоя код,само където съм оправил празните пространства след и преди равното и на 1-2 места сложих голяма буква при принтиране.Друго не съм пипал.

В Judge минава на 100%.

Пробвай да submit-неш това, ако не стане дай линк към твоя submission.

0
Yordan.Vachev avatar Yordan.Vachev 2 Точки


Expected output:
oddsum 9 oddmin 2 oddmax 5 evensum 8 evenmin 1 evenmax 4


Your output:
oddsum 9.00 oddmin 2.00 oddmax 5.00 evensum 8.00 evenmin 1.00 evenmax 4.00

 

от judge е нещо, ама какво е нямам идея   https://judge.softuni.bg/Contests/Compete/Index/1176#2

иска всичко след запетаята, което е 0 да се разкара, но незнам как да го направя това

0
14/07/2019 02:55:13
MariyanNikov avatar MariyanNikov 16 Точки
cout.setf(ios::fixed);
cout.precision(2);

 

Премахнах тези 2 реда и мина с 100 точки.

Явно не се изисква закръгляне до втория знак след запетаята...

0
Yordan.Vachev avatar Yordan.Vachev 2 Точки

благодаря ти, почти съм сигурен, че в моя компилатор първо бяха така и го добавих за да е както е упражнението и после изобщо не се сетих, че може да е оттова!

0