Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 25
1

Задан квадратный массив А из N строк и N столбцов

15.12.2012, 21:29. Показов 970. Ответов 3
Метки нет (Все метки)

Задан квадратный массив А из N строк и N столбцов, элементами которого являются нули и единицы, заданные с помощью функции rand().Установить в нем наличие квадрата из единиц со сторной длины M. Если такой квадрат найден, то вывести координаты его верхнего левого угла.

Добавлено через 23 часа 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
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <time.h>
#include <iostream>
#include <windows.h> 
#include <stdio.h> 
#include <conio.h>
 
HANDLE hStdout; 
 
int _tmain(int argc, _TCHAR* argv[])
{
********hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
********setlocale(LC_CTYPE,"Russian");
********using namespace std;
********int n,i,j,m,schetchik,num,ysl;
 
********SetConsoleTextAttribute(hStdout, 10); 
********cout<<"Введите размерность массива от 1 до 25\n";
********cin>>n;
********if (n>=1 && n<=25) cout<<"Заполненный массив размерностью "<<n<<"\n\n"; else {cout<<"Неверные данные\n"; return 0;}
 
********srand(time(0));
********SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN); 
 
********//Создаем динамический многомерный массив размерностью n
********int **arr = new int *[n];
********for (int k = 0; k<n; k++) arr[k] = new int [n];
 
********//Заполняем массив случайными числами от 0 до 1 и выводим полученный массив на экран
********for (i=0; i<n; i++)
********{
****************for (j=0; j<n; j++)
****************{
************************arr[i][j]=rand()%2; 
************************printf("%3i", arr[i][j]);
****************}
****************cout<<"\n";
********}
********cout<<"\n";
 
********cout<<"Введите длину квадрата, целое число до "<<n<<"\n";
********cin>>m;
********if (m<=0) {cout<<"Длина квадрата должна быть больше 0\n"; return 0;}
********if (m>n) {cout<<"Длина квадрата должна быть меньше размерности массива\n"; return 0;}
********m=m-1;
Добавлено через 1 минуту
помогите пожалуйста найти координаты верхнего левого угла квадрат, а то что-то вообще не догоняю как это делать...
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2012, 21:29
Ответы с готовыми решениями:

Задан двумерный целочисленный массив А из N строк и N столбцов (1<=N<=50).
Задан двумерный целочисленный массив А из N строк и N столбцов (1&lt;=N&lt;=50). Составить программу...

Задан двухмерный массив, состоящий из n строк и n столбцов. Заменить в этом массиве все отрицательные элементы нулями
Задан двухмерный массив, состоящий из n строк и n столбцов. Заменить в этом массиве все...

Задан массив. Получить из него новый массив путем деления элементов каждой из строк первого массива на элемент этой строки
Задан массив А. Получить из него новый массив путем деления элементов каждой из строк первого...

Дан двумерный массив из двух строк и пятнадцати столбцов. Найти номера двух соседних столбцов, сумма элементов в которых
решите плз

3
64 / 64 / 33
Регистрация: 12.08.2012
Сообщений: 151
15.12.2012, 23:43 2
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 <iostream>
#include <time.h>
#include <conio.h>
 
bool search(int **array, int x, int y, int sizeQ, int size);
 
int main(){
    int size(0), sizeQ(0);
    setlocale(LC_ALL, "RUS");
    srand(time(0));
    do{
    system("CLS");
    std::cout << "Ââåäèòå ðàçìåð ìàòðèöû: ";
    std::cin >> size;
    }while(size < 1 || size > 25);
    int **array = new int *[size];
    for(int i = 0; i < size; i++){
            array[i] = new int [size];
            }
    for(int y = 0; y < size; y++){
            for(int x = 0; x < size; x++){
                    array[y][x] = rand()%2;
                    }
            }
    do{
            system("CLS");
    for(int y = 0; y < size; y++){
            for(int x = 0; x < size; x++){
                    std::cout <<array[y][x];
                    }
                    std::cout << "\n";
            }
    std:: cout << "Ââåäèòå ðàçìåð ñòîðîíû êâàäðàòà: ";
    std::cin >> sizeQ;
    }while(sizeQ < 1 || sizeQ > size);
    for(int y = 0; y < size; y++){
            for(int x = 0; x < size; x++){
                    if(array[y][x]){
                                    if(search(array, x, y, sizeQ, size)){
                                                     printf("Íàéäåí êâàäðàò, êîîðäèíàòû x[%i] y[%i] \n", x, y);
                                                     getch();
                                                     return 1;
                                                     }
                                    }
            }
    }
    std::cout << "\nÊâàäðàò íå íàéäåí!\n";
    getch();
    return 0;
}
bool search(int **array, int x, int y, int sizeQ, int size){
     for(int i = y, ci = 0; ci < sizeQ; i++, ci++){
             if(i > size-1){ return 0;}
             for(int j = x, cj = 0; cj < sizeQ; j++, cj++){
                     if(!array[i][j] || j > size-1){ return 0; }
                     }
             }
     return 1;
}
1
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 25
19.12.2012, 00:06  [ТС] 3
Если ввести размеры матрицы 2.36 , то программа выдаст квадрат два на два и зависнет, что надо сделать , чтобы при вводе нецелых чисел выдавалась ошибка?. Подскажите пожалуйста)
0
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 25
20.12.2012, 10:40  [ТС] 4
я саму переменную сделал дабл, создал еще одну инт и присвоил ей значение первой
а потом задал условие сравнить их, если они не равны -> ошибка . Прога выдаёт ошибку
1>laba5.obj : error LNK2019: ссылка на неразрешенный внешний символ "bool __cdecl search(int * *,int,int,double,double)" (?search@@YA_NPAPAHHHNN@Z) в функции _main
Подскажите пожалуйста, как исправить ?)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2012, 10:40

Дан целый массив из 5 строк и 3 столбцов.Упорядочить массив по возрастанию
Дан целый массив из 5 строк и 3 столбцов.Упорядочить массив по возрастанию элементов первого...

Из исходной таблицы в n строк и 6 столбцов нужно сделать таблицу-результат из кучи строк и 6 столбцов
Добрый вечер, учусь в универcитете, начал изучать макросы и подвернулась &quot;интересная&quot; задача -...

Дан двумерный массив, содержащий 14 строк и 15 столбцов. Элементами массива являются целые числа. Упорядочить массив
Как решить в C# Windows Forms? В консольной не надо)

Задан двумерный массив целых чисел A размером N на N. Найти сумму элементов в каждой строк
Задан двумерный массив целых чисел A размером N на N. Найти сумму элементов в каждой строк


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

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

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