Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
KostyaKulakov
Заблокирован
1

Написание программы расчета процента побед

29.08.2012, 14:27. Просмотров 885. Ответов 7
Метки нет (Все метки)

Не по теме:

округление не правильное

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2012, 14:27
Ответы с готовыми решениями:

написание программы
напишите код программы которая решает квадратное уравнение. программа должна...

Написание программы
Помогите с написанием программы

Написание программы
Помогите программу написать пожалуйста.

Написание программы теста
Здравствуйте дорогие программисты. Если это возможно прошу помочь с решением...

Написание программы по массивам
Помогите написать программу и описание работы программы, задание звучит так:...

7
KoMaTo3Huk
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 51
29.08.2012, 16:01 2
Вобщем решил написать программу, которая запрашивает кол-во боев, % побед в них и желаемый % побед. Нужно чтоб программа выдала сколько победных боев нужно для достижения результата. Написал код, но почему-то он зацикливается. Подскажите в чем может быть ошибка.
C++
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
#include "stdafx.h"
#include "math.h"
#include "iostream"
#include "iomanip"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{int d,f=0;
 double a,b,c,e;
 
cout<<"vved a:";
cin>>a;
cout<<"vved b:";
cin>>b;
cout<<"vved d:";
cin>>d;
 
 
c=b*100/a;
cout<<fixed<<setprecision(0)<<c<<endl;
 
for (;;)
{a++;
b++;
f++;
e=b*100/a;
cout<<fixed<<setprecision(0)<<e<<endl;
 
if(e==d) break;
}
cout<<"kol-vo boev: "<<f<<"\n";
    return 0;
}
0
Andsteadur
153 / 137 / 34
Регистрация: 23.05.2009
Сообщений: 275
29.08.2012, 16:25 3
C++
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
#include <iostream>
#include <iomanip>
 
using std::cout;
using std::cin;
 
int main()
{
    int battleNum = 0;
    double currentPercent = 0;
    double targetPercent = 0;
    cout<<"Enter number of battles played: ";
    cin>>battleNum;
    cout<<"Enter current percent of wins: ";
    cin>>currentPercent;
    cout<<"Enter desired percent of wins: ";
    cin>>targetPercent;
    int initialWinNum = battleNum * currentPercent / 100.;
    int neededWinNum = 0;
    while (currentPercent < targetPercent)
    {
        ++neededWinNum;
        currentPercent = 
            (static_cast<double>((initialWinNum + neededWinNum)) / static_cast<double>((battleNum + neededWinNum))) * 100.;
    }
    cout<<"You need to win "<<neededWinNum
        <<" more battles to reach desired percent of wins\n";
    cout<<"After winning "<<neededWinNum
        <<" more battles your percent of wins will be "
        <<std::setprecision(2)<<currentPercent<<"%\n";
    system("pause");
    return 0;
}
0
KoMaTo3Huk
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 51
29.08.2012, 16:38 4
Цитата Сообщение от Andsteadur Посмотреть сообщение
C++
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
#include <iostream>
#include <iomanip>
 
using std::cout;
using std::cin;
 
int main()
{
    int battleNum = 0;
    double currentPercent = 0;
    double targetPercent = 0;
    cout<<"Enter number of battles played: ";
    cin>>battleNum;
    cout<<"Enter current percent of wins: ";
    cin>>currentPercent;
    cout<<"Enter desired percent of wins: ";
    cin>>targetPercent;
    int initialWinNum = battleNum * currentPercent / 100.;
    int neededWinNum = 0;
    while (currentPercent < targetPercent)
    {
        ++neededWinNum;
        currentPercent = 
            (static_cast<double>((initialWinNum + neededWinNum)) / static_cast<double>((battleNum + neededWinNum))) * 100.;
    }
    cout<<"You need to win "<<neededWinNum
        <<" more battles to reach desired percent of wins\n";
    cout<<"After winning "<<neededWinNum
        <<" more battles your percent of wins will be "
        <<std::setprecision(2)<<currentPercent<<"%\n";
    system("pause");
    return 0;
}
неправильно выдает ответ
0
Andsteadur
153 / 137 / 34
Регистрация: 23.05.2009
Сообщений: 275
29.08.2012, 16:45 5
Всмысле неправильно? какие входные данные и какой результат? Я тестировал и все было нормально.

И да лучше без цикла:
C++
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
#include <iostream>
#include <iomanip>
#include <cmath>
 
using std::cout;
using std::cin;
 
int main()
{
    int battleNum = 0;
    double currentPercent = 0;
    double targetPercent = 0;
    cout<<"Enter number of battles played: ";
    cin>>battleNum;
    cout<<"Enter current percent of wins: ";
    cin>>currentPercent;
    cout<<"Enter desired percent of wins: ";
    cin>>targetPercent;
    int initialWinNum = battleNum * currentPercent / 100.;
    int neededWinNum = ceil((static_cast<double>(battleNum) * (targetPercent / 100.) - static_cast<double>(initialWinNum)) / (1. - targetPercent / 100.));
    cout<<"You need to win "<<neededWinNum
        <<" more battles to reach desired percent of wins\n";
    currentPercent = 
        (static_cast<double>((initialWinNum + neededWinNum)) / static_cast<double>((battleNum + neededWinNum))) * 100.;
    cout<<"After winning "<<neededWinNum
        <<" more battles your percent of wins will be "
        <<std::fixed<<std::setprecision(2)<<currentPercent<<"%\n";
    system("pause");
    return 0;
}
0
KoMaTo3Huk
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 51
29.08.2012, 17:02 6
Цитата Сообщение от Andsteadur Посмотреть сообщение
Всмысле неправильно? какие входные данные и какой результат? Я тестировал и все было нормально.

И да лучше без цикла:
C++
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
#include <iostream>
#include <iomanip>
#include <cmath>
 
using std::cout;
using std::cin;
 
int main()
{
    int battleNum = 0;
    double currentPercent = 0;
    double targetPercent = 0;
    cout<<"Enter number of battles played: ";
    cin>>battleNum;
    cout<<"Enter current percent of wins: ";
    cin>>currentPercent;
    cout<<"Enter desired percent of wins: ";
    cin>>targetPercent;
    int initialWinNum = battleNum * currentPercent / 100.;
    int neededWinNum = ceil((static_cast<double>(battleNum) * (targetPercent / 100.) - static_cast<double>(initialWinNum)) / (1. - targetPercent / 100.));
    cout<<"You need to win "<<neededWinNum
        <<" more battles to reach desired percent of wins\n";
    currentPercent = 
        (static_cast<double>((initialWinNum + neededWinNum)) / static_cast<double>((battleNum + neededWinNum))) * 100.;
    cout<<"After winning "<<neededWinNum
        <<" more battles your percent of wins will be "
        <<std::fixed<<std::setprecision(2)<<currentPercent<<"%\n";
    system("pause");
    return 0;
}
вот скрин,ответ должен быть 1 бой
ты просто не использовал округление,ведь 50,5 это уже округляется до 51
0
Миниатюры
Написание программы расчета процента побед  
Andsteadur
153 / 137 / 34
Регистрация: 23.05.2009
Сообщений: 275
29.08.2012, 17:20 7
Следовало указать в задании точность процентов.
0
KoMaTo3Huk
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 51
29.08.2012, 21:54 8
Цитата Сообщение от Andsteadur Посмотреть сообщение
Следовало указать в задании точность процентов.
2 знака после запятой
0
29.08.2012, 21:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 21:54

Планирование и написание программы
Здравствуйте уважаемые участники форума, есть задание, для этой цели начал...

Разработка программы для расчета футбольных матчей
Надо разработать программу для расчета футбольных матчей Что должно быть в...

Написание программы реверса строки
Не могу понять в чем ошибка выдаёт (2 3 3 3 3 3 3 3 3 3) Прошу помощи в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru