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

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

Войти
Регистрация
Восстановить пароль
 
Vergilloo
0 / 0 / 0
Регистрация: 07.06.2012
Сообщений: 32
#1

Задача по структурам, прошу найти ошибку - C++

08.11.2012, 22:25. Просмотров 287. Ответов 6
Метки нет (Все метки)

Программа должна делать следующее - пользователь вводит список спортсменов, а программа выводит на экран данные о тех, которые занимаются плаванием, а также срок их карьеры. Выполняется, вводятся данные, но вывода информации о "плавающих" нет. Как будто этот кусок программы просто игнорируется.
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
#include <iostream.h>
#include <conio.h>
void main()
{
struct sport
{
   char surname[15];
   char kind_of_sport[20];
   int age;
   int age_of_career;
};
sport test[10];
int n;
int i;
char sp[8];
sp=="swimming";
cout<<"Informaciu o skolkih sportsmenah va hotite vvesti?"<<endl;
cin>>n;
for (i=1;i<=n;i++)
{
   cout<<"Enter the surname"<<endl;
   cin>>test[i].surname;
   cout<<"Enter the kind of sport"<<endl;
   cin>>test[i].kind_of_sport;
   cout<<"Enter the age of sportsmen"<<endl;
   cin>>test[i].age;
   cout<<"Enter the age of career"<<endl;
   cin>>test[i].age_of_career;
   cout<<endl<<endl;
}
i=1;
for (i=1;i<=n;i++)
{
   if ((test[i].kind_of_sport)==sp)
{
cout<<"Eti sportsmeni zanimautsa plavaniem:"<<endl;
cout<<test[i].surname<<"  Srok="<<test[i].age_of_career<<" let"<<endl;
}
}
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 22:25     Задача по структурам, прошу найти ошибку
Посмотрите здесь:

Задача по структурам, обнаружить ошибку - C++
дан массив записей, содержащих время (час, минута, секунда). Упорядочить этот массив в порядке &quot;убывания&quot;, т.е. от более поздних значений к...

Прошу найти ошибку... - C++
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; int main(void) { const int n=5; int a, i, j, b; printf (&quot;Enter 5\n&quot;); for...

прошу помочь найти ошибку - C++
задача должна заключатЬся в следующем: вводится предположим число 5, программа обрабатывает и выдает на строке 5 звездочек. #include...

прошу знатаков найти ошибку - C++
вот текст задания для понимания что я понаписал ЛАБОРАТОРНАЯ РАБОТА № 2 РЕАЛИЗАЦИЯ РЕГУЛЯРНЫХ ЦИКЛОВ СРЕДСТВАМИ ЯЗЫКА С++ Цель...

Сортировка массива. Прошу найти ошибку - C++
Дано N цисло (1&lt;=N&lt;=100). Нужно отсортировать. Прошу найти ошибку #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; ...

прошу помощи, не могу найти ошибку - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; using namespace std; void...

задача по структурам - C++
определить структуру для описания полинома. Составить функции: а) дифференцирования полиномов б)интегрирования полиномов

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.11.2012, 22:42     Задача по структурам, прошу найти ошибку #2
Во-первых, никогда не пишите void main() а пишите int main().
В конце пронграммы после всех операторов желательно писать return 0;( в данном случае после getch(), который можно заменить на system("pause")).
Вы испоьзуете cin, cout,endl.А где обьявление пространства имен?Пишите либо в начале функции, либо глобально using namespace std;(а лучше перед каждым cin, cout,endl писать std:.
sp=="swimming";?Что за запись? Что за 2 знака =?нужен 1.
Ещё, вы обьявили массив структур из 10 элементов.И организуете цикл ввода через for.OK.Но у вас начинается ввод в массив с пункта 1 и заканчивается пунктом 10.В С++ нумерация массива идет от нуля и заканчивается Число-1.У вас первый элемент будет пустовать, а если захотите вести 10 структур, то будет выход за пределы массива.
И кстати, когда вы захотите присвоить массиву слово swimming, то у вас тоже получится переполнение массива(не хватает места в нем для хранения символа конца строки).используйте класс string вместо массивов или увеличьте размер массива.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.11.2012, 22:47     Задача по структурам, прошу найти ошибку #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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
 
struct sport
{
    char surname[15];
    char kind_of_sport[20];
    int age;
    int age_of_career;
};
 
int main()
{
    int n;
    int i;
    char* sp = "swimming";
    cout<<"Informaciu o skolkih sportsmenah va hotite vvesti?"<<endl;
    cin>>n;
    cin.get();
    sport* test = new sport[n];
    for (i=0; i<n; i++)
    {
        cout<<"Enter the surname"<<endl;
        cin.getline(test[i].surname, 15);
        cout<<"Enter the kind of sport"<<endl;
        cin.getline(test[i].kind_of_sport, 20);
        cout<<"Enter the age of sportsmen"<<endl;
        cin>>test[i].age;
        cin.get();
        cout<<"Enter the age of career"<<endl;
        cin>>test[i].age_of_career;
        cin.get();
        cout<<endl<<endl;
    }
    for (i=0; i<n; i++)
    {
        if (strcmp((test[i].kind_of_sport), sp) == 0)
        {
            cout<<"Eti sportsmeni zanimautsa plavaniem:"<<endl;
            cout<<test[i].surname<<"  Srok="<<test[i].age_of_career<<" let"<<endl;
        }
    }
    system("pause");
    return 0;
}
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.11.2012, 22:54     Задача по структурам, прошу найти ошибку #4
а лучше вместо массивов символов юзайте string, и будет вам счастье.

И переписывайте код, пожалуйста.
Vergilloo
0 / 0 / 0
Регистрация: 07.06.2012
Сообщений: 32
08.11.2012, 22:55  [ТС]     Задача по структурам, прошу найти ошибку #5
yuron_477, Спасибо большое, один вопрос - что выполняет строка "if (strcmp((test[i].kind_of_sport), sp) == 0)"?

Добавлено через 1 минуту
ZaMaZaN4iK, компилятор ругался, если ставить один знак равно вместо 2-х.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.11.2012, 22:57     Задача по структурам, прошу найти ошибку #6
Сравнивает строки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 22:59     Задача по структурам, прошу найти ошибку
Еще ссылки по теме:

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

Задача на одномерный массив. Найти ошибку - C++
#include &lt;fstream&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int fak(int k) { return((k==1)?...

Задача на двумерные массивы (найти ошибку) - C++
На строчке где, по-идее, программа должна делать замену Dev-C++ пишет ошибку. Помогите разобраться, пожалуйста. /* Дана...

Мат. задача: найти ошибку в коде - C++
Поправьте пожалуйста ошибку. Пример: t = Корень ( 1 + sin^2 *x + tg^2 *y) где y = 2x+5, x=1,5. #include &lt;iostream&gt; ...

Найти ошибку в кода. Задача на массив. - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include &lt;string.h&gt; #include &lt;iomanip&gt; #include &lt;stdlib.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.11.2012, 22:59     Задача по структурам, прошу найти ошибку #7
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
#include <iostream>
#include <string>
 
struct sport
{
   std::string surname;
   std::string kind_of_sport;
   int age;
   int age_of_career;
};
 
int main()
{
    sport test[10];
    int n;
    std::string sp="swimming";
    std::cout<<"Informaciu o skolkih sportsmenah va hotite vvesti?"<<std::endl;
    std::cin>>n;
    for (int i=0;i<n;i++)
    {
        std::cout<<"Enter the surname"<<std::endl;
        std::cin>>test[i].surname;
        std::cout<<"Enter the kind of sport"<<std::endl;
        std::cin>>test[i].kind_of_sport;
        std::cout<<"Enter the age of sportsmen"<<std::endl;
        std::cin>>test[i].age;
        std::cout<<"Enter the age of career"<<std::endl;
        std::cin>>test[i].age_of_career;
        std::cout<<std::endl<<std::endl;
}
 
    for (int i=0;i<n;i++)
    {
        if ((test[i].kind_of_sport)==sp)
        {
            std::cout<<"Eti sportsmeni zanimautsa plavaniem:"<<std::endl;
            std::cout<<test[i].surname<<"  Srok="<<test[i].age_of_career<<" let"<<std::endl;
        }
    }
    system("pause");
    return 0;
}
Yandex
Объявления
08.11.2012, 22:59     Задача по структурам, прошу найти ошибку
Ответ Создать тему
Опции темы

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