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

Своя структура и поиск минимального значения - C++

Восстановить пароль Регистрация
 
SlashX6
15 / 15 / 1
Регистрация: 16.03.2012
Сообщений: 420
30.03.2016, 08:16     Своя структура и поиск минимального значения #1
Добрый день!

Есть своя структура. Заполняю через массив. Делаю в Visual Studio 2015. Вместо списка ошибок и предупреждений,
Visual Studio отображает мне знаки вопросов.

В чём ошибка в моей программе ( см. коментарий в программе )?

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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct companyStats {    // тут показывает восклицательный знак
    int companyId;
    char companyName[50];
    float payedTaxesAmount;
};
 
int main() {
 
    int AmountOfCompanys = 1;
    int i = 1;
 
    cout << "Enter the amount of companys you would like to register: ";
    cin >> AmountOfCompanys;
    cout << endl;
 
    companyStats * payedTaxes = new companyStats[AmountOfCompanys]; // тут показывает ошибку
 
    for (; i <= AmountOfCompanys; i++) {
        cout << "Please enter ID number for company Nr. " << i << " ";
        cin >> payedTaxes[i].companyId;
        cout << endl;
        cout << "Please enter NAME for company Nr. " << i << " ";
        cin.get();
        cin.getline(payedTaxes[i].companyName, 50);
        cout << endl;
        cout << "Please enter payed TAXES AMOUNT for company Nr. " << i << " ";
        cin >> payedTaxes[i].payedTaxesAmount;
    }
 
    float minAmountOfTaxes = payedTaxes[0].payedTaxesAmount;
    char minTaxCompanyName[50];
 
    for (; i <= AmountOfCompanys; i++) {
        if (payedTaxes[i].payedTaxesAmount < minAmountOfTaxes) {
            minAmountOfTaxes = payedTaxes[i].payedTaxesAmount;
            strcpy(minTaxCompanyName, payedTaxes[i].companyName);
        }
    }
 
    cout << "---------------" << endl;
    cout << "Company Name that payed the smallest amount of taxes is: " << minTaxCompanyName << endl;
    
    system("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2016, 08:16     Своя структура и поиск минимального значения
Посмотрите здесь:

C++ Ошибки в программе (поиск минимального значения)
Массивы, вложенные циклы и поиск максимального и минимального значения C++
Структура. Поиск по структуре. C++
Поиск минимального значения C++
C++ Поиск максимального и минимального значения в матрице
C++ Индекс минимального значения
Поиск значения минимального листа дерева/ошибка C++
Своя функция lastpos (поиск последнего вхождения подстроки в строку) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aymurat
90 / 84 / 25
Регистрация: 07.11.2014
Сообщений: 572
Завершенные тесты: 5
30.03.2016, 08:35     Своя структура и поиск минимального значения #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Почему int i = 1, если структура индексируется с 0?
Почему
Цитата Сообщение от SlashX6 Посмотреть сообщение
C++
1
for (; i <= AmountOfCompanys; i++)
{
Думаю, здесь должно быть i<AmountOfCompanys
i = 0 должна быть.
38-43 строчки, вы ищете минимальную плату, используете i, значение которого и так равна AmountOfCompanys-1
Раз уж так - создавайте переменную только внутри цикла,
C++
1
2
for(int i = 0; i < AmountOfCompanys; i++) {...}//здесь, вне скобки уже нет переменной i, начинаем подбор
for (int i = 0; i < ....){..} // и т.д.
Цитата Сообщение от SlashX6 Посмотреть сообщение
C++
1
float minAmountOfTaxes = payedTaxes[0].payedTaxesAmount;
Вы индексируете с 1, а запрашиваете 0... Как так?)

Добавлено через 3 минуты
Цитата Сообщение от Aymurat Посмотреть сообщение
C++
1
float minAmountOfTaxes = payedTaxes[0].payedTaxesAmount;
Здесь скорее всего должно быть максимальное значение для float, ведь вы находите минимум...

Добавлено через 1 минуту
Код в общем:
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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct companyStats {    // тут показывает восклицательный знак
    int companyId;
    char companyName[50];
    float payedTaxesAmount;
};
 
int main() {
    int AmountOfCompanys = 1;
    cout << "Enter the amount of companys you would like to register: ";
    cin >> AmountOfCompanys;
    cout << endl;
 
    companyStats * payedTaxes = new companyStats[AmountOfCompanys]; // тут показывает ошибку
 
    for (int i = 0; i < AmountOfCompanys; i++) {
        cout << "Please enter ID number for company Nr. " << i+1 << " ";
        cin >> payedTaxes[i].companyId;
        cout << endl;
        cout << "Please enter NAME for company Nr. " << i+1 << " ";
        cin.get();
        cin.getline(payedTaxes[i].companyName, 50);
        cout << endl;
        cout << "Please enter payed TAXES AMOUNT for company Nr. " << i+1 << " ";
        cin >> payedTaxes[i].payedTaxesAmount;
    }
 
    float minAmountOfTaxes = 3.402823466E+38;
    char minTaxCompanyName[50];
    for (int i = 0; i < AmountOfCompanys; i++) {
        if (payedTaxes[i].payedTaxesAmount < minAmountOfTaxes) {
            minAmountOfTaxes = payedTaxes[i].payedTaxesAmount;
            strcpy(minTaxCompanyName, payedTaxes[i].companyName);
        }
    }
 
    cout << "---------------" << endl;
    cout << "Company Name that payed the smallest amount of taxes is: " << minTaxCompanyName << endl;
 
    system("pause");
    return 0;
}
Yandex
Объявления
30.03.2016, 08:35     Своя структура и поиск минимального значения
Ответ Создать тему
Опции темы

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