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

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

Восстановить пароль Регистрация
 
Aleksashka
 Аватар для Aleksashka
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
16.07.2012, 19:00     Определить, в каком году было больше всего дел, связанных с мошенничеством #1
Предусмотреть вывод значений для полей элементов массива записей по следующим критериям: дата, предмет судебного разбирательства, название фирмы-истца, название фирмы-обвиняемого. Определить, в каком году было больше всего дел, связанных с мошенничеством
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2012, 19:00     Определить, в каком году было больше всего дел, связанных с мошенничеством
Посмотрите здесь:

C++ Определить, в каком из массивов больше положительных элементов
Определить, в каком доме необходимо установить АТС, чтобы расстояние до всех телефонов было минимальным C++
C++ Вложенные циклы. Определить, в каком году общий урожай, собранный за все время, превысит 800 центнеров
Определить в каком из множеств встречается больше цифр C++
C++ Определить в каком из двух чисел больше цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
16.07.2012, 19:03     Определить, в каком году было больше всего дел, связанных с мошенничеством #2
Такая тема есть чуть ниже.
Aleksashka
 Аватар для Aleksashka
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
16.07.2012, 21:43  [ТС]     Определить, в каком году было больше всего дел, связанных с мошенничеством #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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "stdafx.h"
#include "iostream"
#include "string.h"
using namespace std;
typedef struct
{
    int data;
    char predmet[100];
    char NFI[150];
    char NFO[150];
} baza;
baza BD[100];
int count=0;
void InputData()
{
    cout<<"Enter data";
    cin>>(BD[count].data);
    cout<<"Enter predmet\n";
    cin.getline(BD[count].predmet,100);
    cout<<"Enter NFI\n";
    cin.getline(BD[count].NFI,150);
    cout<<"Enter NFO\n";
    cin.getline(BD[count].NFO,150);
    count++;
}
 
void SearchMax()
{
    int a [5];
    for (int i=0;i<5;i++){
        a[i]=0;
    }
    for (int j=0;j<count;j++)
    {
        if(BD[j].predmet=="moshennichestvo")
        {
            int year=BD[j].data;
            switch(year)
            {
            case 2012: a[0]=a[0]+1;
                case 2011: a[1]=a[1]+1;
                    case 2010: a[2]=a[2]+1;
                        case 2009: a[3]=a[3]+1;
                            case 2008: a[4]=a[4]+1;
            }
        }
    }
    int maximum = a[0];
    int b=0;
    for (int i=1;i<5;i++){
            if(a[i]>maximum)
            {
                int b=i;
            }
            else int b=0;
 
            switch (b)
        {
        case 0: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2012 godu";
            case 1: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2011 godu";
                case 2: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2010 godu";
                    case 3: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2009 godu";
                        case 4: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2008 godu";
        }
 
        }
}
 
int UserMenu()
        {
            cout<<"1.Input Data\n";
            cout<<"2.Search\n";
            cout<<"3.Exit\n";
            int k;
            cin>>k;
        return k;
        }
int main()
{
    bool y=true;
    do
    {
        switch(UserMenu())
        {
        case 1:InputData();break;
        case 2:SearchMax(); break;
        case 3:return 0; break;
        }
 
    } while(y=true);
return 0;   
}

Не работает эта часть
C++
1
2
3
4
5
6
7
8
    switch (b)
        {
        case 0: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2012 godu";
            case 1: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2011 godu";
                case 2: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2010 godu";
                    case 3: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2009 godu";
                        case 4: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2008 godu";
        }
Выводит все подряд, а не то, что нужно
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
16.07.2012, 21:52     Определить, в каком году было больше всего дел, связанных с мошенничеством #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
switch (b)
        {
        case 0: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2012 godu";
                          break;
            case 1: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2011 godu";
                          break;
                case 2: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2010 godu";
                          break;
                    case 3: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2009 godu";
                          break;
                        case 4: cout<<"Bolshe vsego del,svyazannyh c moshennichestvom bylo v 2008 godu";
        }
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
16.07.2012, 22:04     Определить, в каком году было больше всего дел, связанных с мошенничеством #5
после каждой строчки нужно вставить break, а также у тебя цикл какой-то странный. Я не компилировал программу твою, но если допустим a[2]>maximum, b станет равным 2, но т.к у тебя цикл не остановился, то есть шанс, что на последующих этапах b обнулится. Так и доложно работать?

Добавлено через 8 минут
Исходя из твоего куска кода, у тебя b всегда будет равным 0, если я не ошибаюсь и как следствие, всегда будет выводится первый пункт (case 0)
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
 int a [5];
    for (int i=0;i<5;i++){
        a[i]=0;
    }
    for (int j=0;j<count;j++)
    {
        if(BD[j].predmet=="moshennichestvo")
        {
            int year=BD[j].data;
            switch(year)
            {
            case 2012: a[0]=a[0]+1;
                case 2011: a[1]=a[1]+1;
                    case 2010: a[2]=a[2]+1;
                        case 2009: a[3]=a[3]+1;
                            case 2008: a[4]=a[4]+1;
            }
        }
    }
    int maximum = a[0];
    int b=0;
    for (int i=1;i<5;i++){
            if(a[i]>maximum)
            {
                int b=i;
            }
            else int b=0;
Yandex
Объявления
16.07.2012, 22:04     Определить, в каком году было больше всего дел, связанных с мошенничеством
Ответ Создать тему
Опции темы

Текущее время: 06:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru