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

Убрать из массива информацию о машинах, срок службы которых больше 5 лет - C++

Восстановить пароль Регистрация
 
kristina178012
2 / 2 / 0
Регистрация: 09.09.2013
Сообщений: 39
10.09.2013, 00:09     Убрать из массива информацию о машинах, срок службы которых больше 5 лет #1
Мне нужно создать массив структур, который будет вмещать в себе такие элементы: марка автомобиля, тип (грузовой или легковой),номерной знак, срок службы, для легковых нужно вводить цвет. Задание: убрать из массива информацию о машинах срок службы которых больше 5 лет.
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
struct cars
{
    char model[10];
    char color[10];
    int god[10];
    char type[10];
    int numbers[10];
        int c;
        int g;
        int t;
        int nmr;
};
void main()
{
    struct cars car[10];
    int i, n;
    printf("Enter numbers of Cars: ");
    scanf("%d", &n);
    for(i=0;i<n;i++)
    
   
 
 
    
        printf("Enter model: ");
        scanf("%s", &car[i].model);
 
        printf("Enter color: ");
        scanf("%s", &car[i].color);
 
        printf("Enter god: ");
        scanf("%d", &car[i].god);
 
        printf("Enter type: ");
        scanf("%s", &car[i].type);
 
        printf("Enter numbers: ");
        scanf("%s",&car[i].numbers);
 
 
        printf("Model: %s\n",car[i].model);
        printf("Color: %s\n",car[i].c);
        printf("God: %d\n",car[i].g);
        printf("Type: %s\n",car[i].t);
        printf("Numbers: %s\n",car[i].nmr);
        
    
        
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2013, 00:09     Убрать из массива информацию о машинах, срок службы которых больше 5 лет
Посмотрите здесь:

C++ Одномерные массивы. Образуйте массив из элементов массива А(М), каждый из которых больше любого элемента массива B (N)
C++ В цехе установлено 15 единиц оборудования, каждое из которых отработало срок (от 5 до 15 лет), известна стоимость каждой единицы оборудования
Вывести информацию о спортсменах, возраст которых не достиг 18 лет C++
Найти и вывести на экран индексы элементов массива, значения которых больше 1 C++
C++ Обрабатывать данные о машинах, и выводить на экран информацию о машинах выбранной марки
C++ Вывести в порядке невозрастания (убывания) элементы массива, модуль которых больше 2
Вывести информацию о спортсменах, возраст которых не достиг 18 лет C++
C++ Найти произведение элементов массива, результат умножения цифр которых больше заданного К

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kickupduster
 Аватар для kickupduster
4 / 4 / 1
Регистрация: 04.08.2013
Сообщений: 20
10.09.2013, 02:11     Убрать из массива информацию о машинах, срок службы которых больше 5 лет #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
#include <iostream> //для cout, cin
#include <vector> //для вектора
#include <string> //для string 
#include <Windows.h> //для SetConsole
using namespace std;
struct cars
{
    string marka;
    string color;
    int srok;
    string type;
    int numbers;
};
//------------------------------------------------------
void main()
{
    SetConsoleCP(1251);         //русские символы
    SetConsoleOutputCP(1251);   //в консоле
    cars temp;                  //временная структура  
    vector<cars> car;           //объявление массива структур с использованием контейнера STL "vector" 
    string m, c, t;            //временные переменные
    int s, n;
    char ch;
    do{ //ввод данных
        cout << "Введите тип авто(грузовой/легковой): "; cin >> t; 
        temp.type = t;
        cout << "Введите марку авто: "; cin >> m;
        temp.color = m;
        cout << "Введите номер авто: "; cin >> n;
        temp.numbers = n;
        cout << "Введите срок службы авто: "; cin >> s;
        temp.srok = s;
        if (temp.type == "легковой") 
        {
            cout << "Введите цвет авто: "; cin >> c;
            temp.color = c;
        }
        car.push_back(temp); //пометить структуру в ввектор
        cout << "Продолжить ввод?(д/н): "; cin >> ch; //для продолжения ввести 'д'
        system("cls"); //очистка экрана
    }while(ch == 'д');
    for(int i=0; i<car.size(); i++) //car.size() определяет количество элементов в векторе
        if (car[i].srok > 5) car.erase(car.begin()+i); //удаление не нужных данных
    for(int i=0; i<car.size(); i++)  //вывод данных
    {  //после заполнения вектора к его элементам можно обращаться как в обычном массиве
        cout << "\nТип авто: " << car[i].type << endl
             << "Марка авто: " << car[i].marka << endl
             << "Номер авто: " << car[i].numbers << endl
             << "Срок службы авто: " << car[i].srok << endl;
        if (car[i].type == "легковой") cout << "Цвет авто: " << car[i].color << endl;
    }
    system("pause"); //задержка экрана
}
Преимущество vectora по сравнению с обычным массивом в том, что при удалении данных из него автоматически происходит сдвиг остальных его элементов. Данную задачу можно было бы реализовать с помощью обычного массива, но это было бы не так элегантно
Yandex
Объявления
10.09.2013, 02:11     Убрать из массива информацию о машинах, срок службы которых больше 5 лет
Ответ Создать тему
Опции темы

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