Требованияпереключатель Назначение Случай C++
- Vulture IS В, OWL IS О, EAGLE Е ...
for
цикл для ввода данных каждая птица наблюдатель собирает.- внутри цикла
for
, петляdo ... while
для ввода и обработки данных, собранных одним наблюдателем за птицами. - внутри цикла
do ... while
aswitch
инструкция используется для расчета количества яиц для каждого типа птиц. опция по умолчанию, которая ничего не делает, используется при вводеx
. - петля
do ... while
выходит, когда для типа птицы вводится X. - тоталы часть штрафа в соответствии с кодом ниже
ОК, теперь моя проблема, я не могу получить через мой переключатель случае. Это подсказывает мне информацию первого наблюдателя, когда я вхожу в нее, она никогда не переходит к следующему наблюдателю.
Входные данные, приведенные в
3
E2 O1 V2 E1 O3 X0
V2 V1 O1 E3 O2 E1 X0
V2 E1 X
А вот код, который я получил до сих пор:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int totNrVultureEggs, totNrEagleEggs, totNrOwlEggs, nrEggs,
nrVultureEggs, nrEagleEggs, nrOwlEggs, nrBirdWatchers, nrEggsEntered;
char bird;
// initialize grand totals for number of eggs for each type of bird
cout << "How many bird watchers took part in the study?";
cin >> nrBirdWatchers;
// loop over number of bird watchers
for (int i = 0; i < nrBirdWatchers ;i++)
{
// initialize totals for number of eggs for each type of bird
// this bird watcher saw
nrVultureEggs = 0;
nrEagleEggs = 0;
nrOwlEggs = 0;
cout << "\nEnter data for bird watcher " << i + 1 << ":" << endl;
//loop over bird watchers
do{
cin >> bird >> nrEggs;
switch (bird)
{
case 'E':
case 'e':
nrEagleEggs = nrEagleEggs + nrEggs;
case 'O':
case 'o':
nrOwlEggs = nrOwlEggs + nrEggs;
case 'V':
case 'v':
nrVultureEggs = nrVultureEggs + nrEggs;
default :
nrBirdWatchers++;
break;
}
}while (i < nrBirdWatchers)
;
cout << "Bird watcher " << i + 1 << " saw " << nrVultureEggs;
cout << " vulture eggs, " << nrEagleEggs << " eagle eggs and ";
cout << nrOwlEggs << " owl eggs " << endl;
// increment grand totals for eggs
}
// display results
cout << "\nTotal number of vulture eggs: " << totNrVultureEggs;
cout << "\nTotal number of eagle eggs: " << totNrEagleEggs;
cout << "\nTotal number of owl eggs: " << totNrOwlEggs;
return 0;
}
вам нужно 'break' – nullpotent
Вы забыли' сломать, 'в каждом из вашего' случае: ' заявления. это означает, что как только будет применен случай ANY, ВСЕ код в остальных случаях НИЖЕ эта точка выполняется. –
Я добавил его, но он все еще не хочет работать ... case 'E': case 'e': nrEagleEggs = nrEagleEggs + nrEggs; break; case 'O': case 'o': nrOwlEggs = nrOwlEggs + nrEggs; break; case 'V': case 'v': nrVultureEggs = nrVultureEggs + nrEggs; break; default: nrBirdWatchers ++; break; – Peanut