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

Найти отравленную часть пирога - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение матрицы наблюдений при использовании функций принадлежности (трапеций) http://www.cyberforum.ru/cpp-beginners/thread1200978.html
В общем, у меня есть задача построения матрицы наблюдений при помощи базисных функций. Написала для случая одного фактора и двух для треугольников, для 1 фактора трапеций. В случае одномерном создавала сетку в виде отрезков , а в двумерном случае сеткой являются прямоугольники. Никак не могу сообразить, как из этого собрать матрицу с двумя факторами для трапеций. ибо они очень трудно...
C++ Как присвоить нужному элементу в матрице значение первого или последнего элемента? #include <stdio.h> #include <conio.h> #include<iostream> using namespace std; int main() { int a; int i,j,n,k; int max=0; http://www.cyberforum.ru/cpp-beginners/thread1200972.html
C++ Вывести все представления натурального числа в виде сумм чисел
Есть программа ,распечатывающая все представления натурального числа суммами натуральных чисел.При вводе больших чисел в dev cpp не выводит все суммы.Подскажите как исправить #include <stdio.h> #include <stdlib.h> #include <string.h> void print_sum(int **arr) { int num = **arr; int i = 0; while(num != 0) {
Не работает определение вектора C++
Не работает такое определение вектора vector<int> v{9,10,5,3,2,5}, в этой программе: #include <iostream> #include <vector> using namespace std; int main() { vector<int> v{9,10,5,3,2,5}; for (int i = 0; i < v.size() / 2; i += 1) cout << v + v << endl; return 0;
C++ Получение битов и байтов от значения http://www.cyberforum.ru/cpp-beginners/thread1200934.html
Здравствуйте! И так, дано к примеру значение формата 0x0000FF00 . Как получить 2 байт данного значение? или 5 бит? Прошу подробно расписать где что и как использовать. Заранее благодарен!
C++ При решении, каких прикладных задач используются многомерные массивы? Желательно с примерами. И ещё не подскажите какие виды схемы программ бывают (Я так понимаю блок-схемы, но какие виды схем?) подробнее

Показать сообщение отдельно
Jim
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 57

Найти отравленную часть пирога - C++

06.06.2014, 12:22. Просмотров 155. Ответов 0
Метки (Все метки)

1)Имеется прямоугольный пирог, разрезанный на n×m частей (клеток),
причем, левая нижняя клетка пирога отравлена.
Игроки по очереди выбирают
какую-нибудь клетку пирога и «съедают» ее вместе со всеми клетками,

расположенными правее и выше выбранной. Проигрывает тот,
кто съедает отравленную клетку.
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{   system("chcp 1251>0");
    int n,m,i,j,p=1,x,y;   // Объявление переменных
    cout<<"Введите размерность пирога:"<<endl;
    cin>>n>>m; // Ввод размерности пирога
    int **a=new int*[n];
    for (i=0;i<n;i++)  // Выделение памяти под двумерный массив
        a[i]=new int[m];
    for (i=0;i<n;i++)
        for (j=0;j<m;j++)
            a[i][j]=1;   // приравнивание всех элементов массива к единицам
    a[n-1][0]=-1;  // инициализация ядовитого куска
    while(true) // бесконечный цикл
    {   cout<<endl<<"Ход игрока "<<p<<endl; // р - номер игрока
    for (i=0;i<n;i++)
    {   cout<<endl;
        for (j=0;j<m;j++)
            cout<<a[i][j]<<" ";    // вывод матрицы
    }
        cout<<endl<<"Выберите кусок: "<<endl;
        cin>>i>>j;  // выбор кусочка
        if (i>n || j>m || i<=0 || j<=0)    // проверка правильности выбора
        {   cout<<"Выход за пределы!"<<endl;
            system("pause");
        }
        else           // если выбор допустим, выполняются действия
        {   x=i-1;
            y=j-1;
            if (a[x][y]==0)     // если кусочек уже съеден
            {   cout<<"Куска уже нет!"<<endl;
                system("pause");
            }
            if (a[x][y]==1)  // если кусочек не съеден и не ядовитый
            {   for(i=0;i<x;i++)
                    a[i][y]=0;
                for(j=y;j<m;j++)   // съедение остальных кусочков
                    a[x][j]=0;
                if (p==1) p=2;   // проверка номера игрока и смена
                else p=1;
            }
            if (a[x][y]==-1) break; // съедение ядовитого куска и выход из цикла
        }}
    cout<<endl<<"Игрок " <<p<<" Отравлен!Печаль=((("<<endl;
    system("pause");
    return 0;
Здесь проблема в том, что съедаются не все клетки, а только линия сверху и линия справа, хотя нужно, чтобы там все клетки правее и сверху были съедены. Не знаю как исправить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru