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

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

Войти
Регистрация
Восстановить пароль
 
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
#1

Диномически найти минимальный элемент в структуре - C++

07.06.2011, 23:17. Просмотров 476. Ответов 1
Метки нет (Все метки)

Написал программу, она определяет самый дешевый бензин из 3 заправок в структуре, проблема с функцией min - которая определяет самый дешевый бензин и возвращает название заправки. Требуется преобразовать эту функцию, что бы можно было создавать больше элементов в структуре (заправок) и успешно сравнивать цену бензина.
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
#include <cmath>
#include <clocale>
#include <iostream>
#include <string> 
using namespace std;
// Программа в уже введенной структуре, нахидит и выводит самый дешевый бензин 
// 92,95,98 маркировки на представленных в структуре заправках
struct Zapravki{
               string AZS;
  float        cena_benzina;
  unsigned int marka_benzina;
};
 
 
string min(float x, float y, float z, Zapravki *a)
{   
if ((x<z)&&(x<y)){
return a[0].AZS; // хочу вернуть имя заправки
}
if ((y<z)&&(y<x)){
return a[3].AZS; // хочу вернуть имя заправки  
}
if ((z<y)&&(z<x)){
return a[6].AZS;} // хочу вернуть имя заправки
};
 
int main(int argc, char *argv[])
{
    setlocale (LC_CTYPE, "rus");
// Заполняем структуру
  int n = 9; // количество элементов в структуре
             //по 3 на каждую заправку
  Zapravki *a = new Zapravki[n]; 
// Лукоил
  a[0].AZS = "Лукоил";
  a[0].marka_benzina = 92;
  a[0].cena_benzina = 25.0;
  a[1].AZS = "Лукоил";
  a[1].marka_benzina = 95;
  a[1].cena_benzina = 27.5;
  a[2].AZS = "Лукоил";
  a[2].marka_benzina = 98;
  a[2].cena_benzina = 29.0;
//__________________________________
// Сибнефть
  a[3].AZS = "Сибнефть";
  a[3].marka_benzina = 92;
  a[3].cena_benzina = 24.0;
  a[4].AZS = "Сибнефть";
  a[4].marka_benzina = 95;
  a[4].cena_benzina = 27.0;
  a[5].AZS = "Сибнефть";
  a[5].marka_benzina = 98;
  a[5].cena_benzina = 29.5;
//__________________________________
// Подсолнух
  a[6].AZS = "Подсолнух";
  a[6].marka_benzina = 92;
  a[6].cena_benzina = 23.5;  
  a[7].AZS = "Подсолнух";
  a[7].marka_benzina = 95;
  a[7].cena_benzina = 28.0;
  a[8].AZS = "Подсолнух";
  a[8].marka_benzina = 98;
  a[8].cena_benzina = 30.0;  
//___________________________________  
  cout << "Все запрвки в городе: " << endl << endl;
  
  cout << a[0].AZS << " ; " << a[3].AZS <<" ; "<< a[6].AZS << endl;  
  cout << "Проведенный мониторинг показал, что по данным маркировкам бензина" <<
  " данные автозаправки продают бензин дешевле чем  остальные - по городу" << endl;
cout << endl;
//Поиск дешевого бензина с маркировкой 92,95,98
cout <<"Самый дешевый с маркировкой 92 "<< min(a[0].cena_benzina, a[3].cena_benzina, a[6].cena_benzina, a) << endl;
cout <<"Самый дешевый с маркировкой 95 "<< min(a[1].cena_benzina, a[4].cena_benzina, a[7].cena_benzina, a) << endl;
cout <<"Самый дешевый с маркировкой 98 "<< min(a[2].cena_benzina, a[5].cena_benzina, a[8].cena_benzina, a) << endl;
//____________________________________
  
  cout << endl;
  delete[] a;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2011, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Диномически найти минимальный элемент в структуре (C++):

Найти минимальный элемент в каждой строке и из ний найти максимальный элемент - C++
надо найти минимальный элемент в каждой строке и из ний найти максимальный элемент вот мой код #include&lt;conio.h&gt; ...

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

Найти минимальный элемент последовательности из 10 чисел, парный элемент которой вычисляется по формуле - C++
Найти минимальный элемент последовательности из 10 чисел, четный элемент которой вычисляется по формуле i + 5.8, а нечетный: i - 2.0....

Найти минимальный элемент каждой строки и максимальный элемент каждого столбца матрицы - C++
как найти минимальный элемент каждой строки и максимальный элемент каждого столбца матрицы на с++ Добавлено через 6 минут ...

Найти столбец содержащий минимальный элемент. Умножить элементы данного столбца на максимальный элемент - C++
30. В матрице А(8,8) найти столбец содержащий минимальный элемент. Умножить элементы данного столбца на максимальный элемент.

Классы. В массиве чисел размером 6х6 элементов найти максимальный элемент, минимальный элемент и их индексы - C++
В массиве чисел размером 6х6 элементов найти максимальный элемент, минимальный элемент и их индексы. ...

1
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.06.2011, 05:25 #2
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
#include <cmath>
#include <clocale>
#include <iostream>
#include <string> 
using namespace std;
// Программа в уже введенной структуре, нахидит и выводит самый дешевый бензин 
// 92,95,98 маркировки на представленных в структуре заправках
struct Zapravki{
               string AZS;
  float        cena_benzina;
  unsigned int marka_benzina;
};
 
 
string min(unsigned i, const Zapravki * a, int n)
{   
    Zapravki tmp = a[0];
    int j = 0;
    while(a[j].marka_benzina != i)
    {
        j++;
        tmp = a[j];
    }
    
    for(int k = ++j; k < n; k++)
    {
        if(a[k].marka_benzina == i && a[k].cena_benzina < tmp.cena_benzina)
            tmp = a[k];
    }
    return tmp.AZS;
};
 
int main(int argc, char *argv[])
{
    setlocale (LC_CTYPE, "rus");
// Заполняем структуру
  int n = 9; // количество элементов в структуре
             //по 3 на каждую заправку
  Zapravki *a = new Zapravki[n]; 
// Лукоил
  a[0].AZS = "Лукоил";
  a[0].marka_benzina = 92;
  a[0].cena_benzina = 25.0;
  a[1].AZS = "Лукоил";
  a[1].marka_benzina = 95;
  a[1].cena_benzina = 27.5;
  a[2].AZS = "Лукоил";
  a[2].marka_benzina = 98;
  a[2].cena_benzina = 29.0;
//__________________________________
// Сибнефть
  a[3].AZS = "Сибнефть";
  a[3].marka_benzina = 92;
  a[3].cena_benzina = 24.0;
  a[4].AZS = "Сибнефть";
  a[4].marka_benzina = 95;
  a[4].cena_benzina = 27.0;
  a[5].AZS = "Сибнефть";
  a[5].marka_benzina = 98;
  a[5].cena_benzina = 29.5;
//__________________________________
// Подсолнух
  a[6].AZS = "Подсолнух";
  a[6].marka_benzina = 92;
  a[6].cena_benzina = 23.5;  
  a[7].AZS = "Подсолнух";
  a[7].marka_benzina = 95;
  a[7].cena_benzina = 28.0;
  a[8].AZS = "Подсолнух";
  a[8].marka_benzina = 98;
  a[8].cena_benzina = 30.0;  
//___________________________________  
  cout << "Все запрвки в городе: " << endl << endl;
  
  cout << a[0].AZS << " ; " << a[3].AZS <<" ; "<< a[6].AZS << endl;  
  cout << "Проведенный мониторинг показал, что по данным маркировкам бензина" <<
  " данные автозаправки продают бензин дешевле чем  остальные - по городу" << endl;
cout << endl;
//Поиск дешевого бензина с маркировкой 92,95,98
cout <<"Самый дешевый с маркировкой 92 "<< min(92, a, 9) << endl;
cout <<"Самый дешевый с маркировкой 95 "<< min(95, a, 9) << endl;
cout <<"Самый дешевый с маркировкой 98 "<< min(98, a, 9) << endl;
//____________________________________
  
  cout << endl;
  delete[] a;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 05:25
Привет! Вот еще темы с ответами:

Дан массив целых чисел. Найти В этом массиве минимальный элемент т и максимальный элемент м. Вывести сумму элементов от минимального до максимального - C++
Дан массив целых чисел. Найти В этом массиве минимальный элемент т и максимальный элемент м. Вывести сумму элементов от минимального до...

Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r - минимальный элемент матрицы C. - C++
Заданы три матрицы A, B, C. Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r -...

Найти минимальный элемент - C++
Здравствуйте, Уважаемые программисты у меня есть большая проблема. Не могу решить задачи по с++ т.к не понимаю этот язык. помогите кто чем...

Найти минимальный элемент - C++
Вот мой код, он то считает и заполняет правильно, то выводит минимальное 0 и заполняется не до конца. В чем ошибка? Кто поправит? ...


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

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

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