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

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

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

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

08.03.2013, 16:08. Просмотров 322. Ответов 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" );
}
На первом же тесте выдает что непраильный ответ, незнаю вроде тестировал работает нормально так в чом ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2013, 16:08     В чем ошибка?
Посмотрите здесь:

В чем ошибка? - C++
#include &quot;stdio.h&quot; #include &quot;iostream&quot; #include &quot;locale.h&quot; #include &lt;conio.h&gt; using namespace std; class node { ...

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

В чем ошибка? - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; int main() {int N, i; float p=1, n=2; scanf(&quot;%d&quot;, &amp;N); for (i=1; i&lt;=N; i++) ...

В чем ошибка? - C++
Дано натуральное число X. Вычислить: sin x + sin (pow(2,x)) + sin (pow(3,x)) + ... + sin (pow(n,x)) Вот мое решение, в чем ошибка? ...

В чем ошибка? - C++
Никак не найду ошибку error C2061: syntax error : identifier 'cout' #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&quot;conio.h&quot; ...

в чем ошибка? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; float f(int i) { return sqrt double;(i + i); } int main() {

В чем ошибка - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string n = &quot;Jon&quot; string name; cin &gt;&gt; name; ...

В чем ошибка - C++
Я, только начинаю изучать. Моя первая программа. ней есть ошибки. Исходный код и ошибки прилагаю. Помогите пожалуйста разобраться....

В чем ошибка? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; using namespace std; void sort(int*, int); int...

В чем ошибка. - C++
День добрый. Решал задачи по порядку на ********. Такая попалась: В первой строке входного файла INPUT.TXT записано единственное...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
08.03.2013, 16:14     В чем ошибка? #2
Цитата Сообщение от HardLogin Посмотреть сообщение
return system( "pause" );
???
Черный ворон
129 / 123 / 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 возвращает целое число.
а код ТС вроде рабочий. если не считать столь необходимого здесь чтения из файла
HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 750
Записей в блоге: 1
08.03.2013, 16:51  [ТС]     В чем ошибка? #4
та не я когда решение отправляю я возвращяю 0, просто пока разрабатываю чтоб результат помотреть.
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.03.2013, 11:13     В чем ошибка? #5
Чета вы перемудрили с решением. В цикле просто надо посчитать количество каждого вида пингвинов, а вычисление значения bestM выполнить после цикла.
И еще. Название пингвина однозначно идентифицируется по первой букве, так что можно обойтись без структур и сравнений строк
HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 750
Записей в блоге: 1
09.03.2013, 12:23  [ТС]     В чем ошибка? #6
Цитата Сообщение от ya_noob Посмотреть сообщение
Чета вы перемудрили с решением. В цикле просто надо посчитать количество каждого вида пингвинов, а вычисление значения bestM выполнить после цикла.
во первых - чо это? зачем лишнее время? я сразу все в одном цыкле зделаю.


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

Добавлено через 32 секунды
а во вторых - я ж тестировал все работает
Yandex
Объявления
09.03.2013, 12:23     В чем ошибка?
Ответ Создать тему
Опции темы

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