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

Найдите ошибку в задаче: "дана матрица, если выполняется условие, то следует исполнить преобразование.." - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нарисовать прямоугольник http://www.cyberforum.ru/cpp-beginners/thread224530.html
Всем привет! Подскажите как нарисовать прямоугольник с помощью void bar (int x1, int y1, int x2, int y2); И покажите в программе уже, чтобы понять как эту ф-ю использовать.
C++ Размещение объекта в памяти Возможно ли размещение объекта в заранее выделенной памяти, например в массиве? Тоесть не просто скопировать, а так чтобы создание объекта было корректным - с вызовом соответствующего конструктора. http://www.cyberforum.ru/cpp-beginners/thread224528.html
C++ Виртуальные функции
Здрасте! вот задачка, какбэ сделал, но нужны виртуальные функции. даже не знаю как их сделать. #include <iostream.h> #include <math.h> class Root {public: int a,b,c; float x,x1,x2; Root();
C++ Помочь исправить
Здравствуйте, в с++ я новичок, программирую 2 день, дошел до одномерных массивов, помогите разобраться в чем ошибка. Задача: В одномерном массиве из н элементов, вычислить: 1. произведение элементов с четным индексом 2. сумму между первым нулевым и последним элементам Прошу не исправлять, а на словах объянить в чем ошибка!При отладке указывает на строку 45! #include <iostream.h> #include...
C++ Как проверить какой тип данных вводится? http://www.cyberforum.ru/cpp-beginners/thread224504.html
Доброго времени суток. Подскажите пожалуйста!С клавиатуры вводится два целых числа.Как после ввода проверить,что было введено именно int,а не что-то другое?Вопрос не сложный,я думаю. Спасибо.
C++ Как создавать папки с поролем Здраствуйте, помогите пожалуйсто, как сделать так чтобы программа создавала папку под паролем? Добавлено через 3 часа 32 минуты Ну что некто незнает хотябы примерно как это сделать можно? подробнее

Показать сообщение отдельно
sonyaka
 Аватар для sonyaka
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 7
05.01.2011, 22:27     Найдите ошибку в задаче: "дана матрица, если выполняется условие, то следует исполнить преобразование.."
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
// labar4.cpp : main project file.
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <string.h>
#include <fstream>
#include <clocale>
using namespace std;
const int N=8;
ofstream fout;
ifstream fin;
 
bool yslovie(int n,int a[N][N])
// проверяет область 1-2, что существует четный столбец, где каждый элемент  нулевой.
 {
    int j,i; bool GoodStlb; bool GoodElem;int imax;
    i=0;
    GoodStlb=false;
    imax=n/2;
    while (!GoodStlb && i<imax)
    {
        j=i;
        GoodElem=1;              
        while ((GoodElem)&&(j<n-i))
        {
            if (a[i][j]==0)
                GoodElem=false;
            j++;
        }
        GoodStlb=GoodElem;
        i+=2;
    }
return GoodStlb;
}
 
void preobraz3(int n,int a[N][N])
//отражает относительно центра области 3-4
{
    int c; 
    for (int i=0; i<n/2; i++)
    { 
        for (int j=n-i-1; j<n; j++)
        {
            c=a[i][j];
            a[i][j]=a[n-i][j];
            a[n-i][j]=c;
        }
    }
}
void preobraz3i(int n,int a[N][N])
//отражает относительно центра области 3-4
{
    int c; 
    for (int i=0; i<n/2; i++)
    { 
        for (int j=n-i-1; j<n; j++)
        {
            c=a[i][j];
            a[i][j]=a[n-i][j];
            a[n-i][j]=c;
        }
    }
}
 
void vivod(int a[N][N], int n)// вывод матрицы
{
    for(int i=0; i<n;i++)
    {
      for(int j=0;j<n;j++)
        {
            if(j!=(n-1))
              fout << a[i][j] << " ";
            else 
              fout << a[i][j] << endl;
        }
    }
  fout << endl;
}
 
int main()
{
    int n;int a[N][N];
    setlocale( LC_ALL,"Russian");
    fin.open("input.txt");
    fin >> n;
    for(int i=0;i<N;i++)
    {
    for(int j=0;j<N;j++)
    fin >> a[i][j];
    }
    fout.open("output.txt");
    fout << "Исходная матрица" << endl;
        vivod(a,n);
        char choise = '0';
        system("cls");
            while (choise != '3')
    {       system("cls");
            cout << "Работа с матрицей" << "\n\n";
            cout << "1.Вывод матрицы на экран" << "\n";
            cout << "2.Преобразование матрицы при условии" << "\n";
            cout << "3.Выход из меню" << "\n";
 
        cin >> choise;
        switch (choise)
        {
            case '1':
                cout<<" Вывод матрицы на экран "<<endl;
                 for(int i=0;i<N;i++)
                    {
                       for(int j=0;j<N;j++)
                          {
                            if(j!=(n-1))
                            cout << a[i][j];
                            else
                            cout << a[i][j] << endl;
                           }
                     }
                        cout<<endl;    
                cin.get();cin.get();
                break;
            case '2':
                if (n%2==0)
            {
                if (yslovie(n,a))
                {
                preobraz3(n,a);
                }
            }
                else 
                    if (yslovie(n,a))
                         preobraz3i(n,a);
                fout << "Результат" << endl;
                vivod(a,n);
 
                break;
            case '3':
                return 1;
                break;
                
    
        }
    }
    return 1;

Вот код понять не могу, в чем ошибка!!!
Задание выглядит так дана матрица, если выполняется условие, то следует исполнить преобразование...матрицу вводить и выводить из файла

Добавлено через 1 минуту
сама матрица выглядит так
0 0 0 0 0 0 0 0
8 1 1 1 2 2 2 3
8 8 1 1 2 2 3 3
8 8 8 1 2 3 3 3
7 7 7 7 4 4 4 4
7 7 7 6 5 4 4 4
7 7 6 6 5 5 4 4
7 6 6 6 5 5 5 4
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru