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

Удалить (сделать прозрачными) все непрозрачные кубики, видимые хотя бы с одной из четырех сторон - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Формула, по которой можно вычислить время наступления Рагнарека http://www.cyberforum.ru/cpp-beginners/thread1232196.html
Рагнарек должен наступить с минуты на минуту. Но Один не знает, когда именно он наступит. Локи, как самый умный, сказал Одину формулу, по которой можно вычислить время наступления Рагнарека. К...
C++ При выводе минимального элемента последовательности программа выводит слишком большое число При выводе минимального элемента программа выводит слишком большое число. #include <iostream> using namespace std; int main() { setlocale(0,""); int maximum; float numbers, ... http://www.cyberforum.ru/cpp-beginners/thread1232190.html
Sentence. Записать число прописью C++
Once upon a time in a land far far away, inhabited only by math students, Iva and Vedran were discussing self-explanatory sentences. A part of these sentences is exactly one number and it is equal to...
Определить является ли десятичная запись числа симметричной C++
Задание: код: #include<iostream> using namespace std; int main() { int n; cin>>n; cout<<((n/1000==n%10)&&(n/100/10==n%100%10))?1:37<<endl;; return 0;
C++ Как правильно написать функцию push (положить в стек) http://www.cyberforum.ru/cpp-beginners/thread1232179.html
Здравствуйте, господа. Не могу сообразить, как правильно написать функцию push (положить в стек). Ткните меня носом пожалуйста. Всё остальное без ошибок. #include <conio.h> #include <iostream.h>...
C++ Как происходит сортировка в данном блоке? void Sort(char *text, int len, TCHAR* ptr, bool newFile) { char *info; int i=0,b=0; char loly; int lol; int j=0; char info1; info=(char*)malloc(len*sizeof(char)); strcpy(info,""); подробнее

Показать сообщение отдельно
Kritik
0 / 0 / 0
Регистрация: 22.07.2014
Сообщений: 5

Удалить (сделать прозрачными) все непрозрачные кубики, видимые хотя бы с одной из четырех сторон - C++

22.07.2014, 20:48. Просмотров 412. Ответов 1
Метки (Все метки)

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

Текст задания:
Поле размером mxn заполнено прозрачными и непрозрачными кубиками.
Удалить (сделать прозрачными) все непрозрачные кубики, видимые
хотя бы с одной из четырех сторон. (видимость анализируется до удаления
какого-либо кубика).

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
#include <windows.h>
#include <iostream>
#include <cfloat>
using namespace std;
 
int main() {
    int m,n, k=0,i,j, c=0;
    system("chcp 1251");
    cout<<"Введите количество строк: ";
    cin>>m;
    cout<<"Введите количество столбцов: ";
    cin>>n;
    cout<<"----------------------\n";
    cout<<"Заполните массив A["<<m<<"]["<<n<<"]:\n";
    
   const int r=10000;
    int Q[r];
    double **A = new double *[n];
  for(int i = 0; i < m; i++)
    A[i] = new double[n];
    for (unsigned long int i=0; i<m; i++) {
        for (unsigned long int j=0; j<n; j++) { 
        cout<<"Введите элемент массива ["<<i<<"]["<<j<<"]=";
        cin>>A[i][j]; } 
        }
cout<<"Исходный массив:";
for (unsigned long int i=0; i<m; i++) {
    cout<<"\n";
        for (unsigned long int j=0; j<n; j++) { 
            cout<<A[i][j];
            } }  
 
for (unsigned long int i=0; i<m; i++) {
        for (unsigned long int j=0; j<n; j++) { 
            if (A[i][j]==1) {
                  Q[k]=i;
                    Q[k+1]=j;
                    k=k+2; 
                    break;}}
                    }
for (unsigned long int i=0; i<m; i++) {
        for (unsigned long int j=n; j>0; j--) { 
            if (A[i][j]==1) {
                    Q[k]=i;
                    Q[k+1]=j;
                    k=k+2; 
                    break;}}
                    }               
 
for (unsigned long int j=0; j<n; j++) {
        for (unsigned long int i=0; i<m; i++) { 
            if (A[i][j]==1) {
                    Q[k]=i;
                    Q[k+1]=j;
                    k=k+2; 
                    break;}
                    }} 
for (unsigned long int j=0; j<n; j++) {
        for (unsigned long int i=m-1; i>0; i--) { 
            if (A[i][j]==1) {
                    Q[k]=i;
                    Q[k+1]=j;
                    k=k+2; 
                   break;}
                    }}
for (unsigned long int c=0; c<k; c=c+2)    {
          i=Q[c];
          j=Q[c+1]; 
          A[i][j]=0;}
 
 
cout<<"\nРезультат удаления:";
for (unsigned long int i=0; i<m; i++) {
    cout<<"\n";
        for (unsigned long int j=0; j<n; j++) { 
            cout<<A[i][j];
            } }         
cout<<"\n";                
   for(unsigned long int i = 0; i < m; i++){
delete [] A[i];
}
delete [] A;
system("pause"); 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru