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

Найти квадратную матрицу из нулей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ О формальных параметрах http://www.cyberforum.ru/cpp-beginners/thread652345.html
Вопрос вот в чем, возможно ли в С++ объявить формальный параметр так , чтоб при подстановке вместо него фактического, в процессе выполнения функции он изменился? Например как это возможно в Delphi myFunc(a:integer;var b:integer):integer; не важно как не меняй я внутри функции а, он не поменяется , а вот b можно, нужно тоже самое как то реализовать на С++ Помогите пожалуйста!
C++ Простейшая сортировка. В чем причина? нужно отсортировать массив размерности q (вводится с клавиатуры) от большего к меньшему. проблема в том, что у меня почему-то происходит только 1 итерация внешнего цикла. #include <iostream> using namespace std; int main() { int q, w; int e, a; int r=0; http://www.cyberforum.ru/cpp-beginners/thread652332.html
Метод Милна C++
#include <iomanip> #include <math.h> #include <iostream> double f(double x, double y) { return (x*x+y*y); } using namespace std; void main () { int i,n=10; double A,B,h,E;
C++ Недочёт небольшой
Написал программу, показываю преподавателю , а она недовольна, говорит что еще вывод матрицы должен быть,я всю голову сломал уже - ну как и куда вставить в программу?!?! Помогите,пожалуйста,найти ошибку! #include <stdio.h> #define n 4 #define m 5 int Zapolnenie(int a) { int i,j; printf ("Vvedite 4 stroki po 5 chisel");
C++ Задача: Необычные цифры http://www.cyberforum.ru/cpp-beginners/thread652319.html
Описание В математике имеются такие цифры, которые если умножить в квадрате, то в получившемся результате тоже будет эта цифра. Например: 25x25=625,76x76=5776. Напишите программу, которая определит такая это цифра, или нет. Input Вводим любое натуральное цисло. Проверка будет повторяться пока не будет введена цифра 0. Output
C++ Помощь по лабораторке Здравствуйте! Пожалуйста, помогите мне с лабораторной работой на C++. Уже пятый день пытаюсь решить и все безрезультатно. Вот текст задачи: Лабораторная работа №1, вариант 18. Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень - область, закрашенную на рисунке черным цветом. Заранее очень благодарен! подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
15.09.2012, 20:34     Найти квадратную матрицу из нулей
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <memory.h>
#include <ctype.h>
 
#define A 10
#define B 12
 
typedef struct Coords
{
    int x0;
    int y0;
    int x1;
    int y1;
} COORDS;
 
bool exists(COORDS* p, int len, int i, int j)
{
    for (int n = 0; n < len; n++)
        if (i >= p[n].y0 && i <= p[n].y1 &&
            j >= p[n].x0 && j <= p[n].x1) 
            return true;
 
    return false;
}
 
int main()
{
    FILE* fp = NULL;
    const char* filename[2] = { "input.txt", "output.txt" };
    if ((fp = fopen(filename[0], "r")) == NULL)
    {
        printf("Unable to open file %s for reading\n",filename[0]);
        return 0;
    }
 
    int** Image = new int*[A];
    
    char line[256] = "\0";
    for (int t = 0; fgets(line, 256, fp) != NULL; t++)
    {
        Image[t] = new int[B]; int r = 0;
        for (int s = 0; line[s] != '\0'; s++)
            if (!isspace(line[s]) && isdigit(line[s]))
                Image[t][r++] = line[s] - '0';
    }
 
    fclose(fp);
 
    COORDS* coords = new COORDS[A*B];
    memset((void*)coords, 0x00, sizeof(COORDS) * A * B);
 
    COORDS field = { 0 };
    int q = 0, max_field = 0; 
    for (int i = 0; i < A; i++)
        for (int j = 0; j < B; j++)
            if (Image[i][j] == 1 && !exists(coords, q, i, j))
            {
                int d = i; bool bad_region = false;
                int width = 0, height = 0;
                while (Image[d][j] != 0 && !bad_region)
                {
                    int k = j;
                    while (Image[d][k] == 1) k++;
                    
                    if ((d > i) && abs(j-k) != width) bad_region = true; 
                    width = width <= 0 ? abs(j-k) : width;
 
                    d++; 
                }
 
                height = abs(i-d);
 
                if (bad_region == false)
                {
                    coords[q].x0 = j; coords[q].y0 = i;
                    coords[q].x1 = coords[q].x0 + width - 1;
                    coords[q].y1 = coords[q].y0 + height - 1;
 
                    if (width * height > max_field)
                    {
                        max_field = width * height;
                        field = coords[q];
                    }
 
                    q++;
                }
            }
 
    if ((fp = fopen(filename[1], "w")) == NULL)
    {
        printf("Unable to open file %s for writing\n",filename[1]);
        return 0;
    }
 
    fprintf(fp,"%d",max_field);
    fclose(fp);
 
    _getch();
 
    return 0;
}
 
Текущее время: 08:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru