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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.70
Raynk
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 6
#1

C++ не могу в нём разобраться (заход 2) - C++

17.08.2009, 22:52. Просмотров 3394. Ответов 20
Метки нет (Все метки)

Спасибо что помогли мне я думаю что эти задания правильно решены.
Извините что я вас загружаю этими задачами но просто я не понимаю этот язык C++.
Помогите ещё задачи решить.
1. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). Найти все пары натуральных дружественных чисел, меньших 50000.
2. Дано предложение. Определить, сколько в нем одинаковых соседних букв.
3. Дано предложение. Найти наибольшее количество идущих подряд пробелов.
4. Имеется таблица выигрышей денежно-вещевой лотереи. Первый ее столбец содержит номер билета, второй – серию, третий – название выигрыша, четвертый – денежное выражение выигрыша (цену). У школьников было 5 билетов. Сколько из них оказались выигрышными.
5. Дан массив данных о росте человека: фамилия, пол, рост. Определить средний рост женщин этого списка, вывести на экран фамилию самого высокого мужчины этого списка.
6. В массиве а[1]..а[n] целых чисел переставить элементы так, чтобы чётные шли перед нечётными (не меняя взаимный порядок в каждой из групп).
7. Матрицу размера 5х6 заполнить так, чтобы элементы каждой строки, начиная со второй, были равны удвоенным элементам предыдущей строки.
8. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположите их в соответствии с ростом характеристик.
9. Дан массив данных, в котором хранятся данные о детских садах: наименование , номер сада, количество детей, район города, плата за месяц (в руб.). Посчитать количество детей в детских садах указанного района (ввести с клавиатуры) и вывести всю информацию о самом дорогом детском саде.
10. Натуральное число N > 1, представить в виде суммы натуральных чисел так, чтобы произведение этих слагаемых было максимально.
11. Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее минимальный элемент находился в левом верхнем углу, следующий по величине – в позиции (2,2), следующий по величине – в позиции (3,3) и т.д., заполнив таким образом всю главную диагональ.
12. Написать программу “Тестирование коллектива”. Входные данные - информация об учениках некоторого класса из n человек. Для каждого ученика заданы фамилия, возраст, рост, успеваемость (округленный средний балл) и др. параметры.
Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем достигается минимум (максимум) модуля разности среднего арифметического k-ых параметров всех учеников и значения k-го параметра этого ученика.
Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим) по самому большому количеству параметров.
Программа должна считывать исходную информацию и печатать отчет:
• о самых уникальных;
• о самых средних;
• о самых средних среди самых уникальных;
• о самых уникальных среди самых средних.
13. Дано предложение. Поменять местами его первое и последнее слова.
14. "Вращающийся квадрат". Эта игра похожа на известный кубик Рубика. Играет один человек. Перед ним доска размером 4 x 4 клетки, в которых в произвольном порядке расставлены буквы латинского алфавита от A до P. Цель игры – расположить буквы по алфавиту. Делается это благодаря особому устройству доски: любой квадрат, образованный четырьмя соседними клетками, можно вращать по часовой стрелке. За каждый ход квадрат поворачивается ровно на одну клетку. В распоряжении игрока также имеется дополнительная операция, которую можно использовать только раз, - перестановка двух соседних букв любой строки.

Ели вам не тяжело попробуйте и эти задания решить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.08.2009, 18:29     C++ не могу в нём разобраться (заход 2) #16
У школьников было 5 билетов. Сколько из них оказались выигрышными
Все таки надо проверять, раз вопрос сколько из них. Или ты предлагаеш ввод на удачу, угадал номер или не угадал? Угадал - выиграл, не угадал - не выиграл?
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 18:33     C++ не могу в нём разобраться (заход 2) #17
Не так.
Есть таблица N*4, где уже записаны все выигрыши.
Далее вводится еще таблица 5*2, где две колонки - номер серии и номер билета.
Нужно взять вторую таблица - поискать билеты в первой таблице и посчитать.
В первой таблице ничего не проверять не нужно - все номера в ней заведомо выигрышные !
Ну вы что - таблицу выигрышей никогда в руках не держали, что-ли ?
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.08.2009, 18:37     C++ не могу в нём разобраться (заход 2) #18
Цитата Сообщение от odip Посмотреть сообщение
Ну вы что - таблицу выигрышей никогда в руках не держали, что-ли ?
Если честно, то никогда не видел, поэтому такие и вопросы
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.08.2009, 19:50     C++ не могу в нём разобраться (заход 2) #19
M128K145, согласен на сто персентов
Raynk
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 6
20.08.2009, 08:15  [ТС]     C++ не могу в нём разобраться (заход 2) #20
Цитата Сообщение от M128K145 Посмотреть сообщение
мое понимание №2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
    setlocale(LC_ALL,"Rus");
    char s[1000];
    std::cin.getline(s,1000);
    int i(0), j(0);
    int mas[256];
    for(i = 0; i < 256; ++i)
        mas[i] = 1;
    while(s[j])
    {
        if((int)s[j] == (int)s[j+1])
            mas[(int)s[j]]++;
        j++;
    }
    for(i = 0; i < 256; ++i)
        if(mas[i]>1)
            std::cout<<(char)i<<' '<<mas[i]<<'\n';
    system("pause");
    return 0;
}


Добавлено через 44 минуты 22 секунды
№13
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
#include <string>
int main()
{
    setlocale(LC_ALL,"Rus");
    std::string str;
    std::cout<<"Введите строку:\n";
    getline(std::cin, str, '\n');
    size_t pos1(0), pos2(0);
    pos1 = str.find(' ');
    pos2 = str.rfind(' ');
    if(pos1 == -1)
    {
        std::cout<<"В строке только одно слово";
        goto end;
    }
    else
    {
        std::cout<<"Результат:\n";
        std::string buf1;
        buf1 = str.substr(pos2 + 1, str.length() - pos2);
        str.replace(pos2 + 1, str.length() - pos2, str.substr(0, pos1));
        str.replace(0, pos1, buf1);
        std::cout<<str;
    }
 end:
    std::cout<<std::endl;
    system("pause");
    return 0;
}

Не по теме:

я не выбираю легкие задания,
я просто давно не писал на С++,
я просто разминаюсь



Добавлено через 8 минут 8 секунд
№7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    setlocale(LC_ALL,"Rus");
    int matr[5][6], i, j;
    std::cout<<"Введите первую строку матрицы:\n";
    for(i = 0; i < 6; ++i)
        std::cin>>matr[0][i];
    for(i = 1; i < 5; ++i)
        for(j = 0; j < 6; ++j)
            matr[i][j] = matr[i - 1][j] * 2;
    std::cout<<"\nРезультат:\n";
    for(i = 0; i < 5; ++i, std::cout<<std::endl)
        for(j = 0; j < 6; ++j)
            std::cout<<matr[i][j]<<'\t';
    system("pause");
    return 0;
}


Добавлено через 21 минуту 40 секунд
№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
54
55
56
57
58
59
struct People
{
    char fam[20];
    bool pol;;
    int rost;
};
std::istream& operator>>(std::istream& in, People &ppl)
{
    std::cout<<"Фамилия\n> ", in>>ppl.fam;
    std::cout<<"Пол(1 - м, 0 - ж)\n> ", in>>ppl.pol;
    std::cout<<"Рост(см)\n1> ", in>>ppl.rost;
    return in;
}
std::ostream& operator<<(std::ostream& out, People &ppl)
{
    std::cout<<"Фамилия:\n> ", out<<ppl.fam;
    std::cout<<"Пол(1 - м, 0 - ж):\n> ", out<<ppl.pol;
    std::cout<<"Рост(см):\n1> ", out<<ppl.rost;
    return out;
}
int main()
{
    setlocale(LC_ALL,"Rus");
    const int n = 2;
    People pointer[n];
    int i;
    for(i = 0; i < n; ++i)
        std::cout<<"\nЧеловек № "<<i+1<<':'<<std::endl,
        std::cin>>pointer[i];
    std::cout<<"\nРезультат:\n";
    float srRost(0);
    int count(0), max(0), index(0);
    for(i = 0; i < n; ++i)
        if(pointer[i].pol)
        {
            if(pointer[i].rost > max)
            {
                max = pointer[i].rost;
                index = i;
            }
        }
        else
        {
            count++;
            srRost += pointer[i].rost;
        }
    if(!max)
        std::cout<<"В массиве нет мужчин";
    else
        std::cout<<"Фамилия самого высокого мужчины:\n"<<pointer[index].fam;
    std::cout<<"\n\n";
    if(count)
        std::cout<<"Средний рост женщин из массива:\n"<<srRost/count<<" см";
    else
        std::cout<<"В массиве нет женщин";
    std::cout<<'\n';
    system("pause");
    return 0;
}
Здесь тоже ошибки std не является классом или другим чем нибудь библиотеки должны быть прикреплены. Вот это что за символы }
std::ostream& operator<<(std::ostream& out, People &ppl)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2009, 08:55     C++ не могу в нём разобраться (заход 2)
Еще ссылки по теме:
C++ не могу разобраться с Условием!
С циклом for не могу разобраться C++
C++ Не могу разобраться с программой в С++
не могу разобраться с typedef C++
Не могу разобраться в коде C++

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

Или воспользуйтесь поиском по форуму:
Raynk
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 6
01.09.2009, 08:55  [ТС]     C++ не могу в нём разобраться (заход 2) #21
привет всем пожалуйста решите 2 задачи через программу C++ 6 версии и ещё болк схемы хотелось чтобы вы создали
1)"Вращающийся квадрат"Эта игра похожа на известный кубик Рубика. Играет один человек. Перед ним доска размером 4  4 клетки, в которых в произвольном порядке расставлены буквы латинского алфавита от A до P. Цель игры – расположить буквы по алфавиту. Делается это благодаря особому устройству доски: любой квадрат, образованный четырьмя соседними клетками, можно вращать по часовой стрелке. За каждый ход квадрат поворачивается ровно на одну клетку. В распоряжении игрока также имеется дополнительная операция, которую можно использовать только раз, - перестановка двух соседних букв любой строки.
2)Написать программу “Тестирование коллектива”. Входные данные - информация об учениках некоторого класса из n человек. Для каждого ученика заданы фамилия, возраст, рост, успеваемость (округленный средний балл) и др. параметры.
Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем достигается минимум (максимум) модуля разности среднего арифметического k-ых параметров всех учеников и значения k-го параметра этого ученика.
Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим) по самому большому количеству параметров.
Программа должна считывать исходную информацию и печатать отчет:
• о самых уникальных;
• о самых средних;
• о самых средних среди самых уникальных;
• о самых уникальных среди самых средних.
Yandex
Объявления
01.09.2009, 08:55     C++ не могу в нём разобраться (заход 2)
Ответ Создать тему
Опции темы

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