Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 20.05.2015
Сообщений: 18
1

Что нужно изменить, чтобы получился однонаправленный список?

30.05.2015, 10:53. Просмотров 471. Ответов 3
Метки нет (Все метки)

Что нужно добавить или изменить, чтобы получился однонаправленный список?
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
struct car{
    char name[50]; // название марки машины
    int top; // расход топлива
    int bak; // емкость топливного бака
    int S; // путь
 
    void Input(car &cars);  //Функция ввода данных в структуру 
    car *Next;
};
 
car* cars (int);
void calc(car*, int);
void sort(car*, int);
void print(car*, int);
 
 
car* new_car(int N){
    car *cars = new car[N];
    setlocale(LC_ALL, "Russian");
 
    for (int i = 0; i < N; i++){
 
        cin.ignore();
        cout << "Введите марку машины: ";
        cin.getline(cars[i].name, 50);
 
        cout << "Введите расход топлива: ";
        while (!(cin >> cars[i].top) || (cin.peek() != '\n' || cars[i].top <= 0))
        {
            cin.clear();
            while (cin.get() != '\n');
            cout << "Ошибка! Повторите ввод: ";
        }
 
        cout << "Введите емкость бака: ";
 
        while (!(cin >> cars[i].bak) || (cin.peek() != '\n' ||cars[i].bak <= 0))
        {
            cin.clear();
            while (cin.get() != '\n');
            cout << "Ошибка! Повторите ввод: ";
        }
        
    }
    return cars;
 
}
int main()
{    int N;
    setlocale(LC_ALL, "Russian");
    cin.ignore(cin.rdbuf()->in_avail());
    cout << "Количество машин: ";
    
    while (!(cin >> N) || (cin.peek() != '\n' || N<=0 ))
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка! Повторите ввод: ";
    }
    
 
    car* cars = new_car(N);
    calc(cars, N);
    sort(cars, N);
    print(cars, N);
    delete[] cars;
    return 0;
}
       
    void calc(car *cars, int N){
        
        for (int i = 0; i < N; i++){
            cars[i].S = 0;
            cars[i].S += (cars[i].bak / cars[i].top) * 100;
            
            }
        }
 
    void sort(car* cars, int N)
    {
        car tmp;
 
        for (int i = 0; i < N - 1; ++i) // i - номер прохода
        {
            for (int j = 0; j < N - 1; ++j) // внутренний цикл прохода
            {
                if (cars[j + 1].S > cars[j].S)
                {
                    tmp = cars[j + 1];
                    cars[j + 1] = cars[j];
                    cars[j] = tmp;
                }
            }
        }
    }
 
        void print(car *cars, int N){
 
            setlocale(LC_ALL, "Russian");
 
            cin.ignore();
            cout << "\nРезультаты:\n";
            for (int i = 0; i < N; i++){
 
                cout << "\nИмя: " << cars[i].name << "\n " <<"Пройденный путь: " << cars[i].S << endl;
            }
            
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2015, 10:53
Ответы с готовыми решениями:

что нужно заметить для того чтобы получился прямоугольник ?
И так, это код в цикле do_while показывающий на экране квадрат сторонами 5*5 с этим я справился,...

Что нужно установить на FreeBSD8.1 чтобы получился сервер?
Значит так, появилась необходимость собрать сервак для небольшого офиса, человек на 10. Задачи...

нужно чтобы ссылка открывалась не на новой странице, а в отдельном окне что нужно изменить?
&lt;subButton type=&quot;link&quot;&gt; &lt;label&gt;&lt;!]&gt;&lt;/label&gt; ...

Требуется изменить порядок букв так, чтобы получился палиндром
Восстановление палиндрома Задано слово, состоящее из маленьких латинских букв. Требуется изменить...

3
6914 / 5979 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
30.05.2015, 11:15 2
Не использовать массив.
0
1 / 1 / 0
Регистрация: 20.05.2015
Сообщений: 18
30.05.2015, 11:49  [ТС] 3
И как это сделать? Что вместо него? Можете наглядно показать? Пожалуйста!
0
6914 / 5979 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
30.05.2015, 12:37 4
Здесь нельзя просто что-то заменить. Нужно всю программу переделывать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2015, 12:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

что нужно изменить чтобы массив С состоял из повторяющихся элемонтов массива А которых нет в В?? срочно нужно(
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Цилиндр нужно разделить плоскостями чтобы получился квадрат
Цилиндр нужно разделить плоскостями чтобы получился квадрат...Высота цилиндра = 8, диаметр = 5....

Изменить двунаправленный список на однонаправленный
Добрый день, сильно нужна помощь, есть двунаправленный список, необходимо из него сделать...

Нужно исправить в 14 строке формулу чтобы ответ получился -2,341 при x=5 n=4
1.program summa; 2.var 3. q,x,y,s:real; 4. n,i,p,t:integer; 5.begin 6. writeln('x'); 7. ...


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

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

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