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

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

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

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

17.08.2009, 22:52. Просмотров 3448. Ответов 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. Цель игры – расположить буквы по алфавиту. Делается это благодаря особому устройству доски: любой квадрат, образованный четырьмя соседними клетками, можно вращать по часовой стрелке. За каждый ход квадрат поворачивается ровно на одну клетку. В распоряжении игрока также имеется дополнительная операция, которую можно использовать только раз, - перестановка двух соседних букв любой строки.

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

C++ не могу разобраться в нём - C++
Привет всем помогите пожалуйста кто может у меня такая проблема не могу решить задачи по C++, в Программировании я практически нечего...

Программа заход солнца на С++ - C++
Вот пацаны опять нужна эта прога только на С++, так что выручайте кому не лень! Буду весьма благодарен. Добавлено через 23 часа 56...

Не могу разобраться с С++ - C++
Всем Привет, так я кодеру в Делфи. Не давно нашел что мне нужно но оy написан на С. Вот и начался у меня проблемы с кодами. Вот часть...

не могу разобраться.. - C++
Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается ровно N раз. При отсутствии чисел с...

не могу разобраться в задачке - C++
Доброго времени суток! Что то не получается скомпилировать задачку! буду рад помощи tg(x) - (5-x)4 вот код: #include "stdafx.h"...

Не могу разобраться с кодом - C++
Не могу разобраться с участком кода, а именно зачем нужны "++" *buffer->DataEnd++ = data32;

20
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.08.2009, 19:05 #2
Задача №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
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
int main(int argc, char* argv[])
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        string word;
        int max_kol=0; 
        int j=0;
        cout << "Введите предложение: "<<endl;
        getline(cin,word);
        for(int i=0; i<word.size(); i++)
        {
            if (word[i]==' ')
            {
                j++;
            }
            else j=0;
            if(max_kol<j)
            {
                max_kol=j;
            }
        }
        cout<<"Максимальное количество пробелов:   "<<max_kol<<endl;
        return 0;
}
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
18.08.2009, 20:32 #3
Задача T1

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
#include <stdio.h>
#include <stdlib.h>
 
const int MAX_NUM= 50000;
 
void calc_sum_div_arr( int size, int *arr );
 
 
/**************************************/
int main( void ) {
 
int n1, n2;
int arr[MAX_NUM];
 
 
calc_sum_div_arr( MAX_NUM, arr );
for ( n1= 1; n1<MAX_NUM; n1++ ) {
    if ( ((n2= arr[n1])<MAX_NUM) && n1<=n2 && arr[n2] == n1 ) {
        printf( "n1=%d n2=%d\n", n1, n2 );
    }
}
 
return 0;
 
} // main()
 
 
/**************************************/
void calc_sum_div_arr( int size, int *arr ) {
 
register int num, div, sum_div;
 
 
if ( size<=0 ) { return; }
 
arr[0]= 0;
for ( num= 1; num<size; num++ ) {
    sum_div= 0;
    for ( div= 1; div<num; div++ ) {
        if ( num%div == 0 ) { sum_div+= div; }
    }
    arr[num]= sum_div;
}
 
} // calc_sum_div_arr()


Добавлено через 52 минуты 39 секунд
Задача T6

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
#include <stdio.h>
#include <stdlib.h>
 
void print_arr( int *data, int from, int to, const char *title );
void sort_arr( int *data, int from, int to );
void right_rotate( int *data, int from, int to );
 
 
/**************************************/
int main( void ) {
 
const int N= 10;
int a[N+1]= { -1,
    5, 7, 6, 3, 2, 10, 41, 3, 6, 9
};
 
print_arr( a, 1, N, "before:\n" );
sort_arr( a, 1, N );
print_arr( a, 1, N, "after:\n" );
return 0;
 
} // main()
 
 
/**************************************/
void print_arr( int *data, int from, int to, const char *title ) {
 
int i;
 
 
printf( "%s", title );
for ( i= from; i<=to; i++ ) {
    printf( " %d", data[i] );
}
printf( "\n" );
 
} // print_arr()
 
 
/**************************************/
void sort_arr( int *data, int from, int to ) {
 
int i, j;
 
for ( i= from ; i<=to ; ) {
    if ( data[i] % 2 == 0 ) {
        i++; continue;
    }
    // here data[i] % 2 == 1
    for ( j= i+1; ; j++ ) {
        if ( j>to ) { goto label_exit; }
        if ( data[j] % 2 == 0 ) { break; }
    }
    // here data[i..j-1] % 2 == 1
    // data[j] % 2 == 0
    right_rotate( data, i, j );
}
label_exit: ;
 
} // sort_arr()
 
 
/**************************************/
void right_rotate( int *data, int from, int to ) {
    
int i, tmp_val;
 
if ( from>=to ) { return; }
tmp_val= data[to];
for ( i= to-1; i>=from; i-- ) {
    data[i+1]= data[i];
}
data[from]= tmp_val;
 
} // right_rotate()


Добавлено через 1 минуту 57 секунд
10. Натуральное число N > 1, представить в виде суммы натуральных чисел так, чтобы произведение этих слагаемых было максимально.
Эта задача явно не для начинающих.
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.08.2009, 21:49 #4
мое понимание №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;
}
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
18.08.2009, 22:00 #5
Цитата Сообщение от odip Посмотреть сообщение
Эта задача явно не для начинающих.
если ничего не путаю, то задача не очень трудная, по крайней мере в плане реаизации:
для n<=4 раскладываем на два слогаемых: (n-1)+1
для n>4:
1. если делится на 3 без остатка то на n/3 слогаемых 3+3+3+3+...+3
2. если остаток=1 то на n/3 слогаемых 3+3+3+3+...+3+4
3. если остаток=2 то на n/3+1 слогаемых 3+3+3+3+...+3+2
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.08.2009, 22:36 #6
№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
int main()
{
    setlocale(LC_ALL,"Rus");
    int n, i;
    std::cout<<"Введите количество элементов массива:\n",std::cin>>n;
    int *mas = new int[n];
    std::cout<<"Введите элементы массива:\n";
    for(i = 0; i < n; ++i)
        std::cin>>mas[i];
    system("cls");
    std::cout<<"Введенный массив из "<<n<<" элементов:\n";
    for(i = 0; i < n; ++i)
        std::cout<<mas[i]<<' ';
    int *buf1 = new int[n];
    int *buf2 = new int[n];
    int j(0), k(0);
    for(i = 0; i < n; ++i)
        if(mas[i]&1)
            buf1[j] = mas[i], j++;
        else
            buf2[k] = mas[i], k++;
    for(i = 0; i < k; ++i)
        mas[i] = buf2[i];
    for(i = j; i < n; ++i)
        mas[i] = buf1[i - j];
    std::cout<<"\nРезультат:\n";
    for(i = 0; i < n; ++i)
        std::cout<<mas[i]<<' ';
    std::cout<<'\n';
    system("pause");
    return 0;
}

и последний на сегодня №8 скоро будет

Добавлено через 23 минуты 56 секунд
№8
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
int main()
{
    setlocale (LC_ALL, "Russian");
    int n, m, i, j;
    std::cout<<"Введите размерность:\nn = ", std::cin>>n, std::cout<<"m = ", std::cin>>m; 
    int **matr = new int*[n];
    for(i = 0; i < n; ++i)
        matr[i] = new int[m];
    std::cout<<"Введите матрицу размерностью "<<n<<'x'<<m<<":\n";
    for (i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            std::cin>>matr[i][j];
    system("cls");
    std::cout<<"Введенная матрица:\n";
    for(i = 0; i < n; ++i, std::cout<<'\n')
        for(j = 0; j < m; ++j)
            std::cout<<matr[i][j]<<' ';
    int *mas = new int[n];
    for(i = 0; i < n; ++i)
    {
        mas[i] = 0;
        for(j = 0; j < m; ++j)
            if((matr[i][j] > 0) && !(matr[i][j]&1))
                mas[i]+=matr[i][j];
    }
    for(int k = 0; k < n - 1; ++k)
        for(i = 0; i < n - 1; ++i)
            if(mas[i]>mas[i + 1])
            {
                for(j = 0; j < m; ++j)
                    matr[i][j] ^= matr[i + 1][j] ^= matr[i][j] ^= matr[i + 1][j];
                mas[i] ^= mas[i + 1] ^= mas[i] ^= mas[i + 1];
            }
    std::cout<<"Результат:\n";
    for(i = 0; i < n; ++i, std::cout<<'\n')
        for(j = 0; j < m; ++j)
            std::cout<<matr[i][j]<<' ';
    system("pause");
    return 0;
}
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
18.08.2009, 23:02 #7
2EnzoMatrix: Похоже ты прав, но как это доказать
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
18.08.2009, 23:14 #8
не знаю, из разряда *опой чую, объяснить не могу=)
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.08.2009, 11:53 #9
Формулировка задачи №4 некорректная.
Вот решение задачи №9

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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
int main(int argc, char* argv[])
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        int i, j, a, temp;
        string region;
        cout<<"Введите количество детских садов"<<endl;
        cin>>i;
        string *naim_sada;
        naim_sada= new string[i];
        string *raion;
        raion= new string[i];
        int *nom_sada;
        nom_sada= new int[i];
        int *kol_det;
        kol_det= new int[i];
        int *plata;
        plata= new int[i];
        for(j=0; j<i; j++)
        {
            cout<<"Введите наименование "<<j+1<< " детского сада"<<endl; cin>>naim_sada[j];
            cout<<"Введите номер "<<j+1<< " детского сада"<<endl; cin>>nom_sada[j];
            cout<<"Введите количество детей в "<<j+1<<" саду"<<endl; cin>>kol_det[j];
            cout<<"Введите район города "<<j+1<<" детского сада"<<endl; cin>>raion[j];
            cout<<"Введите месячную плату в (руб) в "<<j+1<<" детском саду"<<endl; cin>>plata[j];
        }
        cout<<"Введите наименование района города где необходимо посчитать детей"<<endl;
        cin>>region;
        temp=0;
        for (j=0; j<i; j++)
        {
            if(raion[j]==region)
                temp+=kol_det[j];
        }
        cout<<"Количество детей в садах в районе:"<<region<<":   "<<temp<<endl;
        temp=0;
        a=0;
        for (j=0; j<i; j++)
        {
            if(plata[j]>temp)
            {
                temp=plata[j];
                a=j;
            }
        }
        cout<<"Самым дорогим садом является:"<<endl;
        cout<<"Наименование сада: "<<naim_sada[a]<<endl;
        cout<<"№ детского сада: "<<nom_sada[a]<<endl;
        cout<<"Количество детей: "<<kol_det[a]<<endl;
        cout<<"Наименование района: "<<raion[a]<<endl;
        cout<<"Плата за месяц в рублях: "<<plata[a]<<endl;
        return 0;
}
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.08.2009, 12:49 #10
valeriikozlov, я думаю использование структур в девятой задаче более удобно вот
пример
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
struct ChGarden
{ 
    char nazv[20];
    int kold;
    char raj[20];
    int stoim;
};
std::istream& operator>>(std::istream& in, ChGarden &child)
{
    std::cout<<"Название\n> ", in>>child.nazv;
    std::cout<<"Количество детей\n> ", in>>child.kold;
    std::cout<<"Район\n> ", in>>child.raj;
    std::cout<<"Стоимость\n> ", in>>child.stoim;
    return in;
}
std::ostream& operator<<(std::ostream& out, ChGarden &child)
{
    std::cout<<"Название\n> ", out<<child.nazv;
    std::cout<<"\nКоличество детей\n> ", out<<child.kold;
    std::cout<<"\nРайон\n> ", out<<child.raj;
    std::cout<<"\nСтоимость\n> ", out<<child.stoim<<'\n';
    return out;
}
int main()
{
    setlocale(LC_ALL,"Rus");
    const int n = 2;
    ChGarden 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";
    char rajon[20];
    std::cin>>rajon;
    std::cout<<"\nРезультат:\n";
    int count(0), max(0), index(0);
    for(i = 0; i < n; ++i)
    {
        if(strncmp(strlwr(pointer[i].raj), strlwr(rajon), strlen(rajon)) == 0)
            count+=pointer[i].kold;
        if(pointer[i].stoim > max)
        {
            max = pointer[i].stoim;
            index = i;
        }
    }
    if(count)
        std::cout<<"Количество детей в детских садах "<<rajon<<" района:\n"<<count;
    else
        std::cout<<"В этом районе детских садов нету";
    std::cout<<'\n';
    std::cout<<"\nСамый дорогой детский сад №"<<index+1<<":\n"<<pointer[index];
    system("pause");
    return 0;
}
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 17:47 #11
Формулировка задачи №4 некорректная.
Раскрой свою мысль подробнее - в чем именно некорректная ?
Школьники указывают серию и номер своего билета - 5 штук.
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.08.2009, 18:03 #12
odip, если думать логически:
есть матрица 5х4
Код
№ билета | серия | название выигрыша | цена приза
С этим вроде ясно. Но вопрос сколько из них было выигрышными довольно спорный. Если рассматривать с точки зрения теории игр, то да, формулировка некорректная, потому как не сказано каков тираж и сколько из них выигрышных, тогда надо было считать какие шансы что-то выиграть у этих 5 билетов.
Если ее никак не рассматривать, то все довольно примитивно. Пользователь вводит
Код
1 | aa0001 | 0 | 0
2 | aa0001 | 0 | 0
3 | ab0002 | 1 | 500
4 | ac0003 | 0 | 0
5 | aa0004 | 2 | 400
тогда просто
C++
1
2
3
for(i = 0; i < 5; ++i)
    if(schoolboy[i][3])
        count++;
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 18:10 #13
А я думаю не так.
Есть матрица N*4 - матрица выигрыша всего тиража.
Потом приходят 5 школьников и вводят 10 чисел.
Нужно вывести одно число - сколько среди них выигрышных билетов.
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.08.2009, 18:18 #14
Грубо говоря есть большая такая база(таблица выигрышей), там выбираются билеты номера которых ввели и считается количество ненулевых значений в 4 столбце? Что ж, вполне логично . Значит такое задание и будет
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 18:25 #15
А как еще можно понять текст этого задания ?
И кстати ничего в 4 столбце проверять нужно - из текста задания следует что все билеты попавшие в эту таблицу уже являются выигрышными, а тебя ведь не просят подсчитать сумму выигранных денег.
0
19.08.2009, 18:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2009, 18:25
Привет! Вот еще темы с ответами:

С циклом for не могу разобраться - C++
В учебнике обещано что: Приводимый ниже код выводит на экран числа от 1 до 100. { int count; for (count =1; count &lt;=100;...

Не могу разобраться с интерфейсом - C++
Здравствуйте, у меня такой вопрос. Я как то видел в одном из видео уроков по С++ что в его Visual С++ используется(не знаю как правильно...

Не могу разобраться с оператором while - C++
Столкнулся со странной проблемой. В простой программе цикл с условие while работает неправильно. Подскажите в чём проблема? Эта часть...

Не могу разобраться с gotoxy(y,x) - C++
Вот мой код. Но дело в том, что gotoxy(y,x) выдает ошибку! ('gotoxy' is undefined). Библиотеку тоже подключил. Подскажите в чем проблема? ...


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

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

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