Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
1

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

16.05.2009, 21:11. Просмотров 1438. Ответов 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
Ответы с готовыми решениями:

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

Двумерные массивы..( Оч нужно )
Тема: Двумерные массивы..................( ( С++ Borland ) ) 1 ) Найти два...

Нужно все массивы перевести в двумерные
Я с телефона , помогите кто нить, буду очень благодарен, нужно все массивы...

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

нужно найти ошибку в программе с++ на двумерные массивы
void task_1(int** A, int M ) { int i, j; double sum=0; bool flag=0;...

21
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
20.05.2009, 15:48  [ТС] 2
Помогите плзз...
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
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
79 / 79 / 20
Регистрация: 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 / 1
Регистрация: 15.03.2009
Сообщений: 83
23.05.2009, 12:46  [ТС] 7
Может мне кто-то помочь?

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

Добавлено через 15 часов 0 минут 9 секунд
Не знаю как реализовать проверку защищенности...
В посте #3 всё же написал
1
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 13:21  [ТС] 9
А как сделать,чтобы при вводе неправильной координаты,например больше 8 делало снова ввод?
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
24.05.2009, 13:30 10
C
1
2
3
4
do {
  cout << "Введите значение"
  cin >> x;
} while (! (x >= 1 && x <= 8));
1
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 13:45  [ТС] 11
Хотелось бы как-то иначе через возврат сделать...а что с этими условиями код ппц будет...ладно пока так составлю
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
24.05.2009, 13:47 12
Иначе это как?
1
Хакер
6 / 6 / 1
Регистрация: 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
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
24.05.2009, 14:15 14
Насколько я понял, всю информацию ты помещаешь в массив desktop. Т.е. зная координаты ты можешь узнать, что находится на точке с этими координатами. Поэтому после ввода координакт коня проверь, пуста ли у нас соотвествующая клетка. Если не пуста, то просишь повторить ввод. После успешного ввоха отмечаешь клетку как занятую
1
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 16:33  [ТС] 15
Голова совсем не варит...
0
#pragma
Временно недоступен
955 / 226 / 14
Регистрация: 12.04.2009
Сообщений: 925
24.05.2009, 16:48 16
У тебя тут ошибка или мне кажется?
C++
1
2
3
4
5
6
7
if (desk[i][j]==1&&(sx-i)==(sy-j)) // 1 or 10?
{
cout<<"10-kon pod udarom\n";}
}
}
system("pause");
}
0
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 18:10  [ТС] 17
Да я уже исправил...

Добавлено через 1 час 1 минуту 14 секунд
Ну как поможет кто-то??
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
24.05.2009, 18:13 18
Поможет в чём? В том, что за тебя сделает твою работу?
0
Хакер
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
24.05.2009, 18:22  [ТС] 19
Ну я ж показал код...не с 0 та делать...если лень так и скажи...там не так уж и много осталось.Просто немного непонятно как сделать вот и все...
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
24.05.2009, 18:24 20
Готовый код я писать не буду в принципе. Если есть конкретные вопросы - отвечу, если конкретный вопрос стваится так "а не напишешь ли ты мне?", то понятно дело ответ "нет"
1
24.05.2009, 18:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2009, 18:24

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

Двумерные массивы.
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы...

Двумерные массивы
Ребята, помогите очень прошу! :с По массиву А(n,m) получить массив В(n) (типа...


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

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

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