Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KostyaKulakov
Заблокирован
#1

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

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

Не по теме:

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

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2012, 14:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написание программы расчета процента побед (C++):

написание программы - C++
напишите код программы которая решает квадратное уравнение. программа должна проверять правильность исходных данныхи в случае если...

Разработка программы для расчета футбольных матчей - C++
Надо разработать программу для расчета футбольных матчей Что должно быть в программе: Выбор количества команд (от 10 до 20). Выбор...

Написание программы теста - C++
Здравствуйте дорогие программисты. Если это возможно прошу помочь с решением проблем 1. Student Registration: Students taking the exam...

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

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

Написание программы реверса строки - C++
Не могу понять в чем ошибка выдаёт (2 3 3 3 3 3 3 3 3 3) Прошу помощи в нахождении ошибки. #include "stdafx.h" #include <stdio.h> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KoMaTo3Huk
5 / 5 / 1
Регистрация: 01.05.2012
Сообщений: 49
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;
}
Andsteadur
153 / 137 / 3
Регистрация: 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;
}
KoMaTo3Huk
5 / 5 / 1
Регистрация: 01.05.2012
Сообщений: 49
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;
}
неправильно выдает ответ
Andsteadur
153 / 137 / 3
Регистрация: 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;
}
KoMaTo3Huk
5 / 5 / 1
Регистрация: 01.05.2012
Сообщений: 49
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
Миниатюры
Написание программы расчета процента побед  
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
29.08.2012, 17:20 #7
Следовало указать в задании точность процентов.
KoMaTo3Huk
5 / 5 / 1
Регистрация: 01.05.2012
Сообщений: 49
29.08.2012, 21:54 #8
Цитата Сообщение от Andsteadur Посмотреть сообщение
Следовало указать в задании точность процентов.
2 знака после запятой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 21:54
Привет! Вот еще темы с ответами:

С++ Программа ,Функции , Варианты написание программы - C++
Можно ли эту программу записать немного иначе , даже не знаю как сказать , просто начали придираться к тонкостям)) вроде хотят чтобы...

Написание программы вычисления функции. Ошибка - C++
Написал программу, не могу понять, где описать часть условия, и вывести главное. Задание написать программу вычисления функции: ...

Написание программы для работы с вэб-камерой. - C++
как написать программу для работы с вэб камерой или где можно об этом почитать

Написание программы для перевода из pdf в txt - C++
нужна програма:в верзней части кнобка выбора файла,которая будет открвать на верхней половине экрана или pdf или jpg,gif,tif а в нижней...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.08.2012, 21:54
Ответ Создать тему
Опции темы

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