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

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

Войти
Регистрация
Восстановить пароль
 
HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 753
Записей в блоге: 1
#1

В чем ошибка? - C++

08.03.2013, 16:08. Просмотров 328. Ответов 5
Метки нет (Все метки)

Программист Денис c детства мечтал побывать в Антарктиде, но почему-то регулярных рейсов туда нет. Поэтому Денис все лето изучал Антарктиду с помощью соседнего кинотеатра. Теперь он знает, что в Антарктиде водится несколько видов пингвинов:
Императорские пингвины (Emperor Penguins) — любители петь;
Малые пингвины (Little Penguins) — любители потанцевать;
Пингвины Макарони (Macaroni Penguins) — любители сёрфинга.
К сожалению, в мультфильмах не было сказано, какой вид пингвинов самый многочисленный. Денис решил выяснить это: он посмотрел эти мультфильмы еще раз, и каждый раз, когда видел пингвина, записывал в блокнот название его вида. Сейчас Денис дал вам блокнот с просьбой выяснить, какой вид пингвинов самый многочисленный.
Исходные данные
В первой строке записано целое число n — количество записей в блокноте (1 ≤ n ≤ 1000). В каждой из следующих n строк записано по одному виду пингвинов. Среди видов встречаются только «Emperor Penguin», «Little Penguin» и «Macaroni Penguin».
Результат
Выведите самый популярный вид пингвинов. Гарантируется, что такой вид только один.

Вот код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
using namespace std;
 
struct M
{
       char name[ 20 ];
       int how;
};
 
int main()
{
    int n;
    cin >> n;
    
    M m[] = { { "Emperor Penguin", 0 }, { "Macaroni Penguin", 0 }, { "Little Penguin", 0 } };
    
    char **s = new char*[ n ];
    cin.sync();
    
    int bestM = 0;
    
    for( int i = 0; i < n; i++ )
    {
         s[ i ] = new char[ 20 ];
         cin.getline( s[ i ], 21 );
         
         if( strcmp( "Emperor Penguin", s[ i ] ) == 0 )
         {
             m[ 0 ].how++;
             if( m[ bestM ].how < m[ 0 ].how )
             {
                 bestM = 0;
             }
         }             
         else
         if( strcmp( "Macaroni Penguin", s[ i ] ) == 0 )
         {
             m[ 1 ].how++;
             if( m[ bestM ].how < m[ 1 ].how )
             {
                 bestM = 1;
             }
         }             
         else
         if( strcmp( "Little Penguin", s[ i ] ) == 0 )
         {
             m[ 2 ].how++;
             if( m[ bestM ].how < m[ 2 ].how )
             {
                 bestM = 2;
             }
         }         
    }
    
    cout << m[ bestM ].name;
    return system( "pause" );
}
На первом же тесте выдает что непраильный ответ, незнаю вроде тестировал работает нормально так в чом ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2013, 16:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чем ошибка? (C++):

Реализовать через тип данных структура. При сборке и отладки возникает ошибка. В чем ошибка? - C++
С++ в таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

Ошибка 2 error LNK2019, не пойму в чем ошибка - C++
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в функции....

В чем ошибка? - C++
В строке return (log((cos(3*x-1)^2+0.2))); выдает ошибку inalid operands of types 'double' to binary 'operator'. Что не так? #include...

в чем ошибка - C++
программа должна выводить календарь по номеру года и месяца #include &lt;iostream&gt; using namespace std; void main() { ...

в чем ошибка? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { int a; int x, y, i,...

В чем ошибка - C++
В чем ошибка, помогите пожалуйста. Вроде все проверил, не могу понять, почему результат неправильный #include &lt;iostream&gt; #include...

5
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
08.03.2013, 16:14 #2
Цитата Сообщение от HardLogin Посмотреть сообщение
return system( "pause" );
???
0
Черный ворон
130 / 124 / 6
Регистрация: 31.01.2012
Сообщений: 435
08.03.2013, 16:26 #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Цитата Сообщение от HardLogin Посмотреть сообщение
return system( "pause" );
???
на самом деле в этом нет ничего плохого. прототип функции из stdlib.h выглядит так:

C++
1
 int           _RTLENTRY _EXPFUNC system(const char * __command);
system возвращает целое число.
а код ТС вроде рабочий. если не считать столь необходимого здесь чтения из файла
0
HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 753
Записей в блоге: 1
08.03.2013, 16:51  [ТС] #4
та не я когда решение отправляю я возвращяю 0, просто пока разрабатываю чтоб результат помотреть.
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.03.2013, 11:13 #5
Чета вы перемудрили с решением. В цикле просто надо посчитать количество каждого вида пингвинов, а вычисление значения bestM выполнить после цикла.
И еще. Название пингвина однозначно идентифицируется по первой букве, так что можно обойтись без структур и сравнений строк
0
HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 753
Записей в блоге: 1
09.03.2013, 12:23  [ТС] #6
Цитата Сообщение от ya_noob Посмотреть сообщение
Чета вы перемудрили с решением. В цикле просто надо посчитать количество каждого вида пингвинов, а вычисление значения bestM выполнить после цикла.
во первых - чо это? зачем лишнее время? я сразу все в одном цыкле зделаю.


Цитата Сообщение от ya_noob Посмотреть сообщение
Название пингвина однозначно идентифицируется по первой букве, так что можно обойтись без структур и сравнений строк
структуры мне так для лучшего понимания кода, оно выглядит как объект.

Добавлено через 32 секунды
а во вторых - я ж тестировал все работает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2013, 12:23
Привет! Вот еще темы с ответами:

В чем ошибка? - C++
Подчеркивает строку cin.get(c); &quot;Отсутствуют экземпляры, перегруженная функция&quot; и &quot;слишком мало аргументов в вызове функции&quot;.. ...

в чем ошибка? - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int _tmain(int argc, _TCHAR*...

В чем ошибка - C++
Вот моя программа Player.h #ifndef PLAYER_H #define PLAYER_H class Player { public: Player(int ,int ,int); int health; ...

в чем ошибка? - C++
Даны действительное число а, натуральное число n. Вычислить: 1/a + 1/(a^2) + 1/(a^4) + ... + 1/a^(2^n) #include &lt;stdio.h&gt; #include...


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

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

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