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

Массивы, сортировка, матрицы, подпрограммы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обращение к определенному элементу списка. http://www.cyberforum.ru/cpp-beginners/thread128016.html
Сабж. К примеру, имеется список: list <int> L; И есть цикл: list <int>::iterator i; for (i=L.begin() ; i!=L.end() ; i++) { // и вот тут, как мне обратится к i-ому элементу списка?
C++ Чем отличается fstream от ofstream? 1 - скажите чем отличается fstream От ofstream? 2 - ofstream file1("file.txt"); for(int i=0; i<n; i++) file1 << a << " "; при открытие файла не указано для чего открыт файл. ДЛя чтнения или для вывода. как так? второй параметр ios: где посмореть полный список и что значят они? http://www.cyberforum.ru/cpp-beginners/thread128001.html
C++ Как выделить память для класса
Привет, я пишу библиотеку управления памятью. На данный момент я выделяю память вот так void * __cdecl MyAlloc(size_t size) { void * p=NULL; if( p= malloc(size))//проверяем может ли маллок выделить память { return p;//возвращаем указатель на начало выделенного фрагмента } if((p=malloc(size))==NULL) {
C++ Количество неодинаковых символов в строке
Что-т не получается написать прогу...:\ #include <stdio.h> #include <conio.h> #include <string.h> int main () { int kolvo=0; int j; char buff;
C++ Ошибка компилятора при выводе string http://www.cyberforum.ru/cpp-beginners/thread127964.html
Stock::Stock(const char * co, int n, double pr) { cout<<"Вызван конструктор для: "<< co << "!\n"; company = co; if(n < 0) { cout<<"Количество пакетов не может быть отрицательным; для "<< company <<" установленно в 0.\n"; shares = 0; } else
C++ Код по си++, необходимо внести поправку #include<stdio.h> #include<conio.h> #include<string.h> int Find_in_file(const char *filename, const char *str) { char s; FILE *file; подробнее

Показать сообщение отдельно
enari
 Аватар для enari
18 / 18 / 2
Регистрация: 26.04.2010
Сообщений: 35
12.05.2010, 02:09     Массивы, сортировка, матрицы, подпрограммы
Посмотри, вроде задание правильно понял.

Лучше не придумал =)

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
149
150
151
152
153
154
155
156
#include <iostream>
 
using namespace std;
 
 
 
const short size = 5; // Размерность матрицы 
 
int main ()
{   int buff , flag = 0;
    int summ = 0;
    
    int matrixA[size][size] = {
        {1,1,0,0,1},
        {1,0,1,1,0},
        {0,0,1,0,1},
        {1,0,0,1,0},
        {0,1,1,1,0},
        }; // Инициализация матрицы 5х5
        
    int matrixB[size][size];
    
        for (int i = 0; i <size;i++) // Обнуление матрицы B
    {
        for (int l = 0; l< size; l++)
        {
            matrixB[i][l] = 0;
        }
    }
    
    /*for (int i = 0; i < size;i++) // Ручной ввод.
    {
        do 
        {
            cin >> buff;
            if (buff == 0 || buff == 1){matrixA[i][flag] = buff; flag++; cout << "ok";}
            else{cout << "Попробуй еще раз !\n";}
        }while(flag != size);
        
        cout << i << "test\n";
        flag = 0;
    }*/
    
    for (int i = 0; i <size;i++)
    {
        for (int l = 0; l<size;l++)
        {
            if (i == 0 && l == 0) //Верхний левый угол
            {
                summ +=matrixA[i][l+1];
                summ +=matrixA[i+1][l];
                summ +=matrixA[i+1][l+1];
                
            }
            
            if (i == size-1 && l == 0) // Нижний левый угол
            {
                summ +=matrixA[i-1][l];
                summ +=matrixA[i][l+1];
                summ +=matrixA[i+1][l+1];
                
            }
            
            if(i == 0 && l == size-1) // Верхний правый
            {
                summ +=matrixA[i+1][l];
                summ +=matrixA[i+1][l-1];
                summ +=matrixA[i][l-1];
                
            }
            
            if (i == size-1 && l==size-1) // Нижний правый
            {
                summ +=matrixA[i-1][l];
                summ +=matrixA[i][l-1];
                summ +=matrixA[i-1][l-1];
            }
            
            if ((i > 0 && i<size-1) && l == 0) // Левый столбец
            {
                summ +=matrixA[i+1][l];
                summ +=matrixA[i][l+1];
                summ +=matrixA[i+1][l];
                summ +=matrixA[i+1][l+1];
                summ +=matrixA[i-1][l+1];
            }
            
            if ((i > 0 && i<size-1) && l == size-1) // Нижняя строка
            {
                summ +=matrixA[i-1][l];
                summ +=matrixA[i+1][l];
                summ +=matrixA[i][l-1];
                summ +=matrixA[i+1][l-1];
                summ +=matrixA[i-1][l-1];
                
            }
            
            if (i == 0 && (l > 0 && l <size-1)) // Правый столбец
            {
                summ +=matrixA[i][l+1];
                summ +=matrixA[i][l-1];
                summ +=matrixA[i+1][l];
                summ +=matrixA[i+1][l-1];
                summ +=matrixA[i+1][l+1];
            }
            if(i == size-1 && (l > 0 && l <size-1)) // Верхняя строка
            {
                summ +=matrixA[i][l+1];
                summ +=matrixA[i][l-1];
                summ +=matrixA[i-1][l];
                summ +=matrixA[i-1][l-1];
                summ +=matrixA[i-1][l+1];
            }
            
            if ((i > 0 && i < size-1) && (l > 0 && l < size-1)) // Элементы не на границах
            {
                summ +=matrixA[i+1][l+1];
                summ +=matrixA[i-1][l-1];
                summ +=matrixA[i+1][l-1];
                summ +=matrixA[i-1][l+1];
                summ +=matrixA[i][l+1];
                summ +=matrixA[i][l-1];
                summ +=matrixA[i+1][l];
                summ +=matrixA[i-1][l];
            }
            
            
            if (summ == 2){matrixB[i][l] = matrixA[i][l];} 
            if (summ == 3){matrixB[i][l] = 1;}
            
            summ = 0;
        }
    }
    
    for (int i = 0; i < size; i++) // Вывод как есть.
    {
        for (int l = 0; l <size; l++)
        {
            cout << matrixB[i][l]<<" ";
        }
        cout << '\n';
    }
    
    cout << "\n";
    
        for (int i = 0; i < size; i++) // Вывод с изменением.
    {
        for (int l = 0; l <size; l++)
        {
            if (matrixB[i][l] == 0){cout << "i"<<" ";}
            else{cout << "*"<<" ";}
        }
        cout << '\n';
    }
    return 1;
}
 
Текущее время: 10:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru