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

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

Войти
Регистрация
Восстановить пароль
 
SlashX6
16 / 16 / 1
Регистрация: 16.03.2012
Сообщений: 430
#1

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

30.03.2016, 08:16. Просмотров 205. Ответов 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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2016, 08:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Своя структура и поиск минимального значения (C++):

Поиск минимального значения - C++
Здравствуйте подскажите пожалуйста, как сделать поиск минимального значения. Дано 5 формул типа z=8*x+y*2. Нужно вывести наименьший...

Поиск максимального и минимального значения в матрице - C++
Подскажите как найти минимальное и максимальное значение в матрице 20 на 20 (я так понял рендомных чисел )но при условии что эти числа не...

Ошибки в программе (поиск минимального значения) - C++
#include &lt;iostream&gt; #include &lt;conio&gt; #include &lt;stdio&gt; #include &lt;math&gt; void main() { int a,b,c,min,max; clrscr(); ...

Поиск значения минимального листа дерева/ошибка - C++
всем привет, такая проблема: в чем ошибка поиска значения минимального листа? #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include...

Поиск минимального значения с помощью тернарного оператора - C++
А кто подскажет,как найти минимальное значение с помощью тернарного оператора? f(3,5) . Только не сравнение,а именно поиск

Массивы, вложенные циклы и поиск максимального и минимального значения - C++
Товарищи. Нужна помощь. Срочно. Есть 2 задачи и их надо срочно сделать..Не могу сделать. 1. Элементы массива a сформированы следущим...

1
Aymurat
100 / 94 / 29
Регистрация: 07.11.2014
Сообщений: 636
Завершенные тесты: 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2016, 08:35
Привет! Вот еще темы с ответами:

Своя функция lastpos (поиск последнего вхождения подстроки в строку) - C++
Написать функцию, которая выполняет действие функции LastPos(s,s1)поиск последнего вхождения под строки s1 в строку s. Но без использовании...

Структура. Поиск по структуре. - C++
Добрый вечер, ув. форумчане. Я новичек в С/C++, в данный момент сам учусь по урокам Шага. Дошел до структур, в принципе смысл понял, но...

Индекс минимального значения - C++
Дан двумерный массив, найти минимальное значение в каждой строке и его индекс. Мин нашёл, а как индекс на экран ввести? ...

Найти сумму максимального значения элементов с четными индексами и минимального значения элементов с нечетными индексами в одномерном массиве - C++
дан одномерный массив А.найти мах(a2,a4..)+мин(a1,a3) int main() { int y; cin&gt;&gt;N; for(int i=0; i&lt;N; i++) cin&gt;&gt;y; max=y;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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