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

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

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

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

06.06.2014, 12:22. Просмотров 169. Ответов 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;
Здесь проблема в том, что съедаются не все клетки, а только линия сверху и линия справа, хотя нужно, чтобы там все клетки правее и сверху были съедены. Не знаю как исправить.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 12:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти отравленную часть пирога (C++):

Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) - C++
Задача: k изменяется от 0 до бесконечности ((4k+1)! / ^2) * x^2k = =1/2* X принадлежит интервалу (-1/4 ; 1/4) Найти мин....

Есть пирог. Игроки по очереди выбирают какую-либо клетку пирога. Определить проигравшего - C++
Пирог.Имеетсяпрямоугольныйпирог,разрезанныйнаm×nчастей (клеток),причем,леваянижняяклеткапирогаотравлена.Игроки по...

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

Матрица. Найти закрашенную часть - C++
Матрица размера n*n найти закрашенную часть

GCC как часть библиотек линковать статически, а часть динамически? - C++
Просто пока лень Qt пересобирать, чтобы возыметь статик-либы. Нужно Qt линковать динамически, а boost, gmp, ... статически. Возможно ли...

Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? - C++
подскажите пожалуйста, есть ли возможность в char массив часть данных ввести в буквах, а часть в цифрах (или в любой другой массив вбить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 12:22
Привет! Вот еще темы с ответами:

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

Найти целую часть суммы чисел - C++
Исходные данные: x=12 a=9,5 Найти целую часть суммы чисел G, I, U

Найти сумму дробей и выделить целую часть - C++
Даны натуральные числа a,b,c,d.Найти сумму a/b+c/d в виде правильной несократимой дроби с выделенной целой частью. Пример: ...

Скопировать часть строки и часть удалить - C++
1. Удалить из строки ее часть с заданной позиции и заданной длины. 2. Скопировать часть строки с определенной позиции и определенной...


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

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

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