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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
#1

Нужно доработать задачку на двумерные массивы. - C++

16.05.2009, 21:11. Просмотров 1366. Ответов 21
Метки нет (Все метки)

#include <iostream>
using namespace std;
int main () {
int desk[8][8]={0};
int sx,sy;
int x,y;
cout<<"enter the position Slon:\n";
cin>>sx;
cin>>sy;
sx=sx-1;
sy=sy-1;
desk[sx][sy]=3;
cout<<"1-st Kon:\n";
cin>>x;
cin>>y;
x=x-1;
y=y-1;
desk[x][y]=1;
cout<<"2-st Kon:\n";
cin>>x;
cin>>y;
x=x-1;
y=y-1;
desk[x][y]=2;
int udar=0;
int i,j;
for (i=0;i<8;i++) {
for (j=0;j<8;j++) {
cout<<desk[i][j];
}
cout<<"\n";}
for (i=0;i<8;i++) {
for (j=0;j<8;j++) {
if (desk[i][j]==1&&(sx-i)==(sy-j))
{cout<<"1-kon\n";}
if (desk[i][j]==2&&(sx-i)==(sy-j))
{
cout<<"2-kon\n";}
}
}
system("pause");
}
Шахматная доска.На ней расположены 10 черных коней и белый слон.Проверить сколько коней под ударом.Но еще надо сделать так,чтобы если к примеру слон стоит на (1,1),а 2 коня на (2,2) и (3,3),то чтобы (3,3) не писалось что он под ударом...вообщем жду помощи....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2009, 21:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно доработать задачку на двумерные массивы. (C++):

Написать задачку на двумерные массивы(Шахматная доска.На ней расположены 2 черных коня и белый слон). - C++
Помогите написать задачку на двумерные массивы. Задача: Шахматная доска.На ней расположены 2 черных коня и белый слон.Проверить сколько...

Двумерные массивы..( Оч нужно ) - C++
Тема: Двумерные массивы..................( ( С++ Borland ) ) 1 ) Найти два максимальных элемента в последний строке массива А. ...

Нужно все массивы перевести в двумерные - C++
Я с телефона , помогите кто нить, буду очень благодарен, нужно все массивы перевести в двумерные #include &lt;iostream&gt; using namespace...

Нужно изменить двумерные массивы на динамические - C++
Добрый вечер. Не помешала бы ваша помощь,в моей лабе,нужно заменить двумерные массивы на динамические. К сожалению,я не знаю как это...

нужно найти ошибку в программе с++ на двумерные массивы - C++
void task_1(int** A, int M ) { int i, j; double sum=0; bool flag=0; printf(&quot;\n1 задание: &quot;); for(i=0; i&lt;M; i++) for(j=0;...

Нужно исправить задачку на замену значений (swap) - C++
#include&lt;iostream&gt; using namespace std; int f(int a, int b); int main() { int x = 5; int c = 55; cout &lt;&lt; x &lt;&lt; ' ' &lt;&lt; c &lt;&lt;...

21
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
20.05.2009, 15:48  [ТС] #2
Помогите плзз...
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
20.05.2009, 17:41 #3
Начинаешь от позиции, где находится слон и по очереди проверяешь 4 диагональных направления. По каждому направлению идёшь до тех пор, пока не наткнёшься на коня (в этом случае увелдичиваешь счётчик), либо не упрёшься в край доски
1
Undina
1 / 1 / 0
Регистрация: 12.05.2009
Сообщений: 5
22.05.2009, 00:09 #4
помогите плз исправить ошибки: мне нужно посчитать сумму элементов в тех столбцах матрицы, в которой есть хотя бы 1 отрицательный элемент....
вот код проги:
#include<iostream>
#include<conio.h>
#define n 3
#define m 3

using namespace std;
int main()
{
int mas[n][m],i,j;
int sum=0;
cout<<"VVEDITE MASSIV:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>mas[i][j];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(mas[i][j]<0)
sum=sum+mas[j][0];

}
cout<<"SUMMA="<<sum<<endl;
getch();
return 0;
}
1
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
22.05.2009, 00:39 #5
что то не пойму кому помагать и что мы тут разбираем сумму или доску?
2
BullDogoff
10 / 10 / 1
Регистрация: 16.05.2009
Сообщений: 30
22.05.2009, 11:01 #6
Undina, иногда проще написать код с нуля..
Если я правильно понял задачу, должно быть как-то так:
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
#include <iostream.h>
#define A 4 //ÏðèГ*ГЁГ¬Г*ГҐГ¬ A Г§Г* ñòîëáåö,
#define B 4 //Г* B Г§Г* ñòðîêó
 
main()
{
    int Array[A][B+1], Sum=0; //Ââîäèì äîïîëГ*èòåëüГ*Г® ñòðîêó äëÿ Г¬Г*ðêèðîâêè ñòîëáöîâ, êîòîðûå áóäåì Г±Г·ГЁГІГ*ГІГј
    int i, k;
 
    for(i=0; i<A; i++) Array[i][B]=0;
 
    for(i=0; i<A; i++)
    {
        for(k=0; k<B; k++)
        {
            cout<<"Insert Array element ("<<i+1<<"; "<<k+1<<"): ";
            cin>>Array[i][k];
            if(Array[i][k]<0) Array[i][B]=1;
        }
    }
 
    for(i=0; i<A; i++)
        if(Array[i][B]==1)
            for(k=0; k<B; k++)
                Sum+=Array[i][k];
 
    cout<<"\nSum = "<<Sum<<"\n\n";
    
    
    return 0;
}
Считает сумму всех элементов столбцов с отрицательными элементами..
1
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
23.05.2009, 12:46  [ТС] #7
Может мне кто-то помочь?

Добавлено через 15 часов 0 минут 9 секунд
Не знаю как реализовать проверку защищенности...
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
23.05.2009, 15:57 #8
Цитата Сообщение от Хакер Посмотреть сообщение
Может мне кто-то помочь?

Добавлено через 15 часов 0 минут 9 секунд
Не знаю как реализовать проверку защищенности...
В посте #3 всё же написал
1
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 13:21  [ТС] #9
А как сделать,чтобы при вводе неправильной координаты,например больше 8 делало снова ввод?
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
24.05.2009, 13:30 #10
C
1
2
3
4
do {
  cout << "Введите значение"
  cin >> x;
} while (! (x >= 1 && x <= 8));
1
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 13:45  [ТС] #11
Хотелось бы как-то иначе через возврат сделать...а что с этими условиями код ппц будет...ладно пока так составлю
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
24.05.2009, 13:47 #12
Иначе это как?
1
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 14:13  [ТС] #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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
using namespace std;
int main () {
int desk[8][8]={0};
int sx,sy;
char s;
int x,y;
do {
  cout << "Pervaya koordinata Slona (Ot 1 do 8):\n";
  cin >> sx;} while (! (sx >= 1 && sx <= 8));
do {
  cout << "Vtoraya koordinata Slona (Ot 1 do 8):\n";
  cin >> sy;} while (! (sy >= 1 && sy <= 8));
sx=sx-1;
sy=sy-1;
desk[sx][sy]=3;
do {
  cout << "Pervaya koordinata 1-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 1-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=1;
do {
  cout << "Pervaya koordinata 2-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 2-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=2;
do {
  cout << "Pervaya koordinata 3-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 3-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=3;
do {
  cout << "Pervaya koordinata 4-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 4-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=4;
do {
  cout << "Pervaya koordinata 5-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 5-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=5;
do {
  cout << "Pervaya koordinata 6-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 6-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=6;
do {
  cout << "Pervaya koordinata 7-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 7-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=7;
do {
  cout << "Pervaya koordinata 8-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 8-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=8;
do {
  cout << "Pervaya koordinata 9-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 9-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=9;
do {
  cout << "Pervaya koordinata 10-go Konya (Ot 1 do 8):\n";
  cin >> x;} while (! (x >= 1 && x <= 8));
do {
  cout << "Vtoraya koordinata 10-go Konya (Ot 1 do 8):\n";
  cin >> y;} while (! (y >= 1 && y <= 8));
x=x-1;
y=y-1;
desk[x][y]=10;
int udar=0;
int i,j;
for (i=0;i<8;i++) {
for (j=0;j<8;j++) {
cout<<desk[i][j];
}
cout<<"\n";}
for (i=0;i<8;i++) {
for (j=0;j<8;j++) {
if (desk[i][j]==1&&(sx-i)==(sy-j))
{cout<<"1-kon pod udarom\n";}
if (desk[i][j]==2&&(sx-i)==(sy-j))
{
cout<<"2-kon pod udarom\n";}
if (desk[i][j]==3&&(sx-i)==(sy-j))
{
cout<<"3-kon pod udarom\n";}
if (desk[i][j]==4&&(sx-i)==(sy-j))
{
cout<<"4-kon pod udarom\n";}
if (desk[i][j]==5&&(sx-i)==(sy-j))
{
cout<<"5-kon pod udarom\n";}
if (desk[i][j]==6&&(sx-i)==(sy-j))
{
cout<<"6-kon pod udarom\n";}
if (desk[i][j]==7&&(sx-i)==(sy-j))
{
cout<<"7-kon pod udarom\n";}
if (desk[i][j]==8&&(sx-i)==(sy-j))
{
cout<<"8-kon pod udarom\n";}
if (desk[i][j]==9&&(sx-i)==(sy-j))
{
cout<<"9-kon pod udarom\n";}
if (desk[i][j]==1&&(sx-i)==(sy-j))
{
cout<<"10-kon pod udarom\n";}
}
}
system("pause");
}
Вот получившийся код...нужно дописать,чтоб координаты не повторялись и на вывод массива желательно сделать слона как S, a не 3 и с 10 конем как-то разобраться,а то массив не ровный выводится...
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
24.05.2009, 14:15 #14
Насколько я понял, всю информацию ты помещаешь в массив desktop. Т.е. зная координаты ты можешь узнать, что находится на точке с этими координатами. Поэтому после ввода координакт коня проверь, пуста ли у нас соотвествующая клетка. Если не пуста, то просишь повторить ввод. После успешного ввоха отмечаешь клетку как занятую
1
Хакер
6 / 6 / 0
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 16:33  [ТС] #15
Голова совсем не варит...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2009, 16:33
Привет! Вот еще темы с ответами:

двумерные массивы - C++
Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4. зарание спасибо!

Двумерные массивы - C++
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во отрицательных эл-тов тех строк, которые содержат...

Двумерные массивы в С++ - C++
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем находит среди них самую длинную фамилию. Все фамилии...

Двумерные массивы. - C++
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Как это вообще? Второй день голову...


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

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

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