Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
IIIa66uMEM6eP
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 6
#1

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

29.05.2011, 21:19. Просмотров 497. Ответов 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}};

http://www.cyberforum.ru/cpp-beginners/thread228973.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 21:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Небольшой вопрос по заполнению структуры (C++):

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

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

небольшой вопрос по структурам
Плиз, подскажите как присвоить значение переменной(index) элементу массива...

Небольшой вопрос про наследование.
Как понять Circle (int x, int y, int r, TColor p, TColor b) : cx...

небольшой вопрос про совмещение строк
всем приятного времени суток))сразу извиняюсь если тема не в том...

10
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 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
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 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
Эксперт С++
2854 / 1789 / 355
Регистрация: 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
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 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
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
29.05.2011, 21:55 #6
Странно, у меня работает...
0
Миниатюры
Небольшой вопрос по заполнению структуры  
IIIa66uMEM6eP
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 6
29.05.2011, 21:58  [ТС] #7
а у меня нет
0
Миниатюры
Небольшой вопрос по заполнению структуры  
IIIa66uMEM6eP
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 6
29.05.2011, 22:03  [ТС] #8
билдер вообще на int 2; заругался)
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 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
заставил Бендера
445 / 301 / 16
Регистрация: 05.12.2010
Сообщений: 1,662
Записей в блоге: 6
29.05.2011, 22:11  [ТС] #10
asics, заработало!

Добавлено через 3 минуты
беда в том что мне потом придется все это сравнивать.
к примеру будет сравнение цены бензина с лукойла и с сибнефти.. как это можно осуществить? при вводе структуры таким образом
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

структуры вопрос
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point {...

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


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

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

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