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

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

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

Небольшой вопрос по заполнению структуры - C++

29.05.2011, 21:19. Просмотров 485. Ответов 10
Метки нет (Все метки)

В первой строке ошибка, пропущена точка с запятой.. Поправте, как правильно заполнить
C++
1
2
3
4
5
6
Zapravki_AZS[0].AZS = {{ "Lukoil";  Zapravki_AZS[0].marka_benzina = 92;
                                    Zapravki_AZS[0].cena_benzina = 25.0},
                       { "Lukoil";  Zapravki_AZS[0].marka_benzina = 95;
                                    Zapravki_AZS[0].cena_benzina = 27.0},                                    
                       { "Lukoil";  Zapravki_AZS[0].marka_benzina = 98;
                                    Zapravki_AZS[0].cena_benzina = 29.0}};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Небольшой вопрос по заполнению структуры (C++):

небольшой вопрос..... - C++
подскажите,пожалуйста,что в этой записи обозначает &(амперсант) перед переменными? int dd, mm, yy; fscanf(Query,"%d.%d.%d", &dd, &mm,...

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

Небольшой вопрос по массивам - C++
В общем столкнулся с одной проблемой. Ведь в массивах все элементы начинаются с 0, то когда я пишу какую-нить прогу для решения какой-либо...

небольшой вопрос по структурам - C++
Плиз, подскажите как присвоить значение переменной(index) элементу массива структуры(avto.chet). Вроде бы ерунда, а не получается.

Небольшой вопрос про наследование. - C++
Как понять Circle (int x, int y, int r, TColor p, TColor b) : cx (x), cy (y), rad (r), Shape (p, b) {} строчку понял что это...

небольшой вопрос про совмещение строк - C++
всем приятного времени суток))сразу извиняюсь если тема не в том разделе:pardon: вот назрела задачка....помогите разобраться.. в общем:...

10
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 21:26 #2
Вот простой пример, думаю разберешся:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
struct A{
  int a;
  char b;
};
 
int main(){
  A a[2] = {
    {1, 'a'},
    {2, 'b'}
  };
  return 0;
}
1
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
29.05.2011, 21:32  [ТС] #3
asics, и по вашему попробовал..не получается
вот весь код:
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
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <clocale>
#include <fstream>
#include <windows.h>
#include <algorithm>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#pragma comment(lib,"kernel32.lib") 
using namespace std;
 
struct Zapravki
{
    string AZS;
    float cena_benzina;
    unsigned int marka_benzina;
};
 
void Print (Zapravki *b, size_t &n) // процедура вывода
                                             
{
    for (size_t index = 0; index < n; index++)
    {
             cout << index << " " << b[index].AZS
                           << " " << b[index].marka_benzina   
                           << " " << b[index].cena_benzina    << endl;  
 
    }
}
// процедура поиска по структуре
void Search_In_Structure (Zapravki *b, std::string AZS0, size_t &n)
{  
    for (size_t index = 0; index < n; index++)
    {
        if (b[index].AZS == AZS0)
            cout << b[index].cena_benzina << endl;
    }
}
 
int main(int argc, char *argv[])
{
    setlocale (LC_CTYPE, "rus");
// динамический массив
    size_t number = 2;
    Zapravki *Zapravki_AZS;
    Zapravki_AZS = new Zapravki [number];
 
//как правильно ввести структуру?
Zapravki_AZS[0].AZS = {
                       { 'Lukoil',  Zapravki_AZS[0].marka_benzina = 92, Zapravki_AZS[0].cena_benzina = 25.0},
                       { 'Lukoil',  Zapravki_AZS[0].marka_benzina = 95, Zapravki_AZS[0].cena_benzina = 27.0},                                    
                       { 'Lukoil',  Zapravki_AZS[0].marka_benzina = 98, Zapravki_AZS[0].cena_benzina = 29.0}
                      };         
                                 
                          
//////////////////////////////////////////////////////////////////////                              
Zapravki_AZS[1].AZS = "SibNeft"; Zapravki_AZS[1].marka_benzina = 92
                               ;  Zapravki_AZS[1].cena_benzina = 23.0;
/////////////////////////////////
    Print(Zapravki_AZS, number);
    cout << endl;
    Search_In_Structure(Zapravki_AZS, "Lukoil", number);
/////////////////////////////////    
    delete []Zapravki_AZS;
    cin.get();
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 21:39 #4
А так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
struct Zapravki{
  std::string AZS;
  float cena_benzina;
  unsigned int marka_benzina;
};
 
int main(){
  int n = 2;
  Zapravki *a = new Zapravki[n];
  a[0] = {"qwerty", 9.8, 20};
  a[1] = {"ytrewq", 6.4, 15};
  std::cout << a[0].AZS;
  delete[] a;
  return 0;
}
1
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
29.05.2011, 21:54  [ТС] #5
тоже вариант)) но думал как бы меньше индексов сделать..

Добавлено через 9 минут
asics, скомпилил ваш вариант.. таже ошибка что и в моем..

Добавлено через 2 минуты
кстати при таком варианте, прога компилится но вылетает при запуске.
C++
1
2
3
4
5
6
Zapravki_AZS[0].AZS =  "Lukoil";  Zapravki_AZS[0].marka_benzina = 92;
                                     Zapravki_AZS[0].cena_benzina = 25.0;
Zapravki_AZS[1].AZS =  "Lukoil";  Zapravki_AZS[0].marka_benzina = 95;
                                     Zapravki_AZS[0].cena_benzina = 27.0;                                    
Zapravki_AZS[2].AZS =  "Lukoil";  Zapravki_AZS[0].marka_benzina = 98;
                                     Zapravki_AZS[0].cena_benzina = 29.0;
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 21:55 #6
Странно, у меня работает...
0
Миниатюры
Небольшой вопрос по заполнению структуры  
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
29.05.2011, 21:58  [ТС] #7
а у меня нет
0
Миниатюры
Небольшой вопрос по заполнению структуры  
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
29.05.2011, 22:03  [ТС] #8
билдер вообще на int 2; заругался)
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 22:05 #9
IIIa66uMEM6eP, Так тоже не работает ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
struct Zapravki{
  std::string AZS;
  float cena_benzina;
  unsigned int marka_benzina;
};
 
int main(){
  int n = 2;
  Zapravki *a = new Zapravki[n];
  a[0].AZS = "qwerty";
  a[0].cena_benzina = 9.8f;
  a[0].marka_benzina = 20;
  std::cout << a[0].AZS;
  delete[] a;
  std::cin.get();
  return 0;
}
0
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
29.05.2011, 22:11  [ТС] #10
asics, заработало!

Добавлено через 3 минуты
беда в том что мне потом придется все это сравнивать.
к примеру будет сравнение цены бензина с лукойла и с сибнефти.. как это можно осуществить? при вводе структуры таким образом
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 22:17 #11
IIIa66uMEM6eP, Да при любом вводе это делаеться одинаково:
C++
1
2
3
4
5
a[0].AZS = "Likoil";
a[0].cena_benzina = 9.8f;
a[1].AZS = "Sibneft";
a[1].cena_benzina = 8.1f;
bool b = a[0].cena_benzina < a[1].cena_benzina;
0
29.05.2011, 22:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 22:17
Привет! Вот еще темы с ответами:

Работа с указателями(небольшой вопрос насчет преобразований) - C++
*((uint*)space)=SIGNATURE; space+=sizeof(uint); Как записать в одну строчку ? *(((uint*)space)++)=SIGNATURE; так не...

Структуры... Задача: "База сотрудников небольшой фирмы" - C++
По каждому сотруднику вводится следующая информация: • Фамилия, имя, отчество; • год и дата рождения; • пол; • стаж работы по...

структуры вопрос - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point { double x,y,z; }; double dlina(point a,point...

Вопрос. Чем отличаются структуры в С++ от классов в C++ - C++
Приветствую. Никак не могу понять чем же все таки отличаются структуры от классов, кроме того что в структуре по умолчанию все члены...


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

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

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