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

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

Войти
Регистрация
Восстановить пароль
 
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
#1

Поиск по условию в уже введённых данных - C++

04.12.2012, 21:00. Просмотров 550. Ответов 13

Известны данные о моделях ноутбуков к их стоимости. Необходимо обеспечить ввод этих данных в программу, после этого следует найти ноутбук, стоимость которого максимально близка к средней стоимости, вычисленной по всем ноутбукам.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 21:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск по условию в уже введённых данных (C++):

Поиск максимального числа среди введённых чисел. Проверить код - C++
Он должен делать следующее: пользователь вводит число, если оно меньше 8 то считается мат. выражения, если больше то поиск максимального...

Цикл на проверку введённых данных - C++
Здравствуйте. Мне нужно проверить вводимые данные в двумерный массив. Всё бы хорошо, если бы на последнюю строчку ввода при правильном...

Проблемы с проверкой введённых данных - C++
Никак не могу раобраться с проверкой на ввод числа, символа Которую нужно обязательно добавить Помогите пожалуйста :cry: :sorry: ...

Ошибка при сравнении введённых данных - C++
Я очень долго пытался решить эту трабл но так и не понял даже ее суть( Суть данного компонента в том что есть 2 массива из которых...

Реализовать программу, рисующую треугольник на основании введённых пользователем данных - C++
Здравствуйте Нужна помощь в написании программы) Пишу с руки 3 стороны треугольника, программа должна нарисовать сам...

Используя массив структур - на основе введённых данных создать таблицу - C++
Знаю что делаю, что-то не так. Но не могу разобраться. Нужно используя массив of Structures - на основе введённых данных создать таблицу....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 17:38 #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
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
Вот ваша программа
Может можно реализовать намного проще но у меня получилось так

Добавлено через 16 минут
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
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    if(k.cen==0)break;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
вот правильный вариант в том было несколько ошибок
Программа далеко не идеальна может быть очень много ошибок уже при работе в ней так как в цену можно ввести не только числа но и буквы и т.д.

Добавлено через 54 минуты
и вместо этого "Чтобы выйти введите цену 0" в коде нужно ввести "Чтобы начать поиск"
1
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 18:14  [ТС] #3
Boshop, спасибо! щас буду разбираться подробнее в каждой строчке не подскажешь какую-нибудь литературу по структурам в плюсах? книжка Липмэна есть, но структуры там что-то особо не объясняли =(
0
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 18:33 #4
Возьми Шилдта книгу по ++

Добавлено через 9 минут
Только учти тут нужно очень сильно ее доработать очень много будет проверок на исключения и т.д.
1
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 20:42  [ТС] #5
Boshop, учту) спасибо =)

Добавлено через 2 часа 6 минут
Boshop, скопипастил программу в visual studio, запускаю, но после дебага выдаёт ошибку =( программа совсем не запускается...
0
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 23:10 #6
Какие выдает ошибки? у меня работает идеально...
до этого подключал библиотеки и использовал пространство имен?
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
#include <iostream>
#include <math.h>
using namespace std;//это все подключил?
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    if(k.cen==0)break;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
0
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 23:33  [ТС] #7
Boshop, до этого подключал только iostream)) дополнил ещё твоим вариантом, но всё-равно он почему-то не может правильно определить "vector<noteboo> notebook" в 13-й строчке, тупо красным подчёркивает...
http://i49.***********/big/2012/1205/...c1b24023bc.png вот скриншот окна visual studio
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
05.12.2012, 23:54 #8
Подключить надо

C++
1
#include<vector>
Добавлено через 7 минут
Вот так: еще string надо включить
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
#include <iostream>
#include <math.h>
#include<string>
#include<vector>
 
using namespace std;
 
struct noteboo
{
    string mark;
    int cen;
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    vector<noteboo> notebook;
 
    noteboo k;
 
    k.cen=1;
    int ce=0;
    int p=0;
 
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0: " <<endl;
    cout << "Введите цену ноутбука:  ";
    cin >> k.cen;
 
    if(k.cen==0)break;
    cout << "Введите марку ноутбука: ";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука: ";
    cin >> ce;
 
    int j=0;
    int l=1000000;
 
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
 
    cout << "Самый лучший вариант это:    " << notebook[j].mark <<"    Стоимость которого:"<< notebook[j].cen<<endl;
 
    cin.get();
    return 0;
}
0
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 23:59  [ТС] #9
Цитата Сообщение от DPS Посмотреть сообщение
Подключить надо

C++
1
#include<vector>
Добавлено через 7 минут
Вот так: еще string надо включить
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
#include <iostream>
#include <math.h>
#include<string>
#include<vector>
 
using namespace std;
 
struct noteboo
{
    string mark;
    int cen;
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    vector<noteboo> notebook;
 
    noteboo k;
 
    k.cen=1;
    int ce=0;
    int p=0;
 
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0: " <<endl;
    cout << "Введите цену ноутбука:  ";
    cin >> k.cen;
 
    if(k.cen==0)break;
    cout << "Введите марку ноутбука: ";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука: ";
    cin >> ce;
 
    int j=0;
    int l=1000000;
 
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
 
    cout << "Самый лучший вариант это:    " << notebook[j].mark <<"    Стоимость которого:"<< notebook[j].cen<<endl;
 
    cin.get();
    return 0;
}
Вот, отлично! Спасибо! Теперь всё работает =) Извиняюсь за кнопочку "Не согласен", промахнулся с "плюсом"
0
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
06.12.2012, 07:22 #10
ну надеюсь помог
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 13:39 #11
Boshop, не то ищите
Цитата Сообщение от mykl Посмотреть сообщение
следует найти ноутбук, стоимость которого максимально близка к средней стоимости, вычисленной по всем ноутбукам.
т.е. надо найти среднее арифметическое среди стоимости всех ноутбуков, а потом только искать
0
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
06.12.2012, 18:52  [ТС] #12
Boshop, конечно помог =) спасибо!

Добавлено через 44 секунды
I.M., вроде бы всё правильно ищет программа
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 18:55 #13
mykl, ну как же правильно, если желаемая стоимость вводится с клавиатуры? в задании же сказано, что ее надо вычислить
0
mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
06.12.2012, 20:58  [ТС] #14
I.M., ммм... ну да в принципе, немного отошли от самого задания, но думаю это не будет принципиальным) в субботу преподу покажу, если не понравится, то уже можно будет немного передать...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 20:58
Привет! Вот еще темы с ответами:

Поиск структур по условию - C++
Известны максимальные скорости 20 моделей легковых автомобилей. Марки моделей записаны в отдельном текстовом файле. Напечатать названия...

Regex. Поиск по условию - C++
Остался тогда ещё один вопрос по регуляркам . Поиск по условию, на с++ работает? Что-то типо этого? Или же снова есть свои тонкости? ...

корректировка уже введенных пользователем данных - C++
Работаю в консоли. Пользователю выдаются показатели бух.баланса, после чего проверяется, сошелся баланс или нет (при инициализации...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.12.2012, 20:58
Ответ Создать тему
Опции темы

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