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

Снова я со своей квадратной матрицей. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество различных элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread528703.html
Помогите ,пожалуйста ,реализовать программу на языке Си . Определить количество различных элементов матрицы С (повторяющиеся элементы считать один раз).Если можно с коментариями в коде для понимания .
C++ std::thread Возник вопрос: как создать массив потоков (точнее, как его инициализировать). То есть, мне нужно примерно такое: std::thread x={/*чето*/}; И еще: есть ли хороший гайд по std::thread? http://www.cyberforum.ru/cpp-beginners/thread528688.html
понять рекурсию C++
Здравствуйте! Хочу понять рекурсию:) для этого хочу реализовать рекурсивный выход из лабиринта. точка (.) можно ходить, решетка (#) стена, g это выход. из начало вводится 2 цифры, это размерности символьного массива, затем вводится сам массив, затем вводится 2 цифры, это координаты начала. например 3 3 . . . # # . # # g выход есть вот что я по пробовал сделать...
наименьшее значение в массиве поменять с последним элементом в массиве C++
В массиве C из N элементов найти элемент, имеющий наименьшее значение и поменять его местами с последним элементом. Значение N задать при помощи ввода, а сам массив сформировать из случайных чисел в диапазоне от -100 до 100. помогите,пожалуйста,разобраться с программой #include <iostream.h> #include <stdlib.h> void main() { int N,i,*mas,min; cout<<"Vvedi kolichestvo elem.massiva";...
C++ Как из одномерного массива сформировать двумерный? http://www.cyberforum.ru/cpp-beginners/thread528655.html
например 1 2 3 4 5 6 7 8 9 10 11 12, => 1 2 3 4 5 6 7 8 9 10 11 12
C++ Циклические операторы С и массивы Добрый вечер, помогите пожалуйста решить задачу. Или натолкните пожалуйста в какую сторону мне двигаться. Заранее спасибо!! Задачу нужно выполнить на Си. Программа, которая считает кол-во вхождений заданного символа в заданной строке, пока символ != пробел. Максимальная длина строки - 50 символов. + Вычислить сумму всех цифр в строке. подробнее

Показать сообщение отдельно
wildfires
1 / 1 / 0
Регистрация: 09.01.2012
Сообщений: 114

Снова я со своей квадратной матрицей. - C++

26.03.2012, 22:10. Просмотров 374. Ответов 7
Метки (Все метки)

Вроде доделал программу, которая проверяет матрицу на латинский и магический квадрат:
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
using namespace std;
int **mass = 0;
int n,i,j;
 
//Вводимо матрицю
int     **Matrix(int n)
{int **matr = new int *[n];
for (int i = 0; i < n; ++i)
matr[i] = new int [n];
for(int i = 0; i < n; i++)
{for(int j = 0; j < n; j++)
{cout << "\n Vvedit` element ryadka " <<i+1 <<" stovbcya " <<j+1 <<" : ";
cin >> matr[i][j];}}
return matr;}
 
//перегляд матриці
void output(int n)
{for(int i = 0; i < n; i++)
{for(int j = 0; j < n; j++)
{cout << mass[i][j] << "\t";}
cout << endl;}}
 
//перевірка на латинський квадрат
void lat (void)
{
int lat=0;
int summa=n*(n+1)/2;
for(int i = 0; i < n; i++)
{for(int j = 0; j < n; j++)
{if (mass[i][j]>n||mass[i][j]<1)
lat=1;} }
//сума рядків
for(int i = 0; i<n; ++i){
int sumr = 0;
for(int j = 0; j<n; ++j){
sumr += mass[i][j];}
if (summa!=sumr) lat=1;}
//сума стовбчиків
for(int j = 0; j<n; ++j){
int sums = 0;
for(int i = 0; i<n; ++i){
sums += mass[i][j];}
if (summa!=sums) lat=1;}
if (lat==1)
cout<<"Kvadrat ne latunskiy";
else cout<<"Kvadrat latunskiy";
}
 
//перевірка на магічний квадрат
void mag (void)
{
int lat=0;
int summa=(n*(pow(n,2)+1))/2;
for(int i = 0; i < n; i++)
{for(int j = 0; j < n; j++)
{if (mass[i][j]<1)
lat=1;} }
//сума рядків
for(int i = 0; i<n; ++i){
int sumr = 0;
for(int j = 0; j<n; ++j){
sumr += mass[i][j];
} if (summa!=sumr) lat=1;}
//сума стовбчиків
for(int j = 0; j<n; ++j){
int sums = 0;
for(int i = 0; i<n; ++i){
sums += mass[i][j];
}
if (summa!=sums) lat=1;}
//сума головної діагоналі
int gdio=0;
for(i=0;i<n;i++)
gdio+= mass[i][i];
if (summa!=gdio) lat=1;
//сума побічної діагоналі
int ddio=0;
for(i=0;i<n;i++)
ddio+= mass[i][n-i-1];
if (summa!=ddio) lat=1;
//перевірка
if (lat==1)
cout<<"Kvadrat ne magichniy";
else cout<<"Kvadrat magichniy";
}
 
//головна программа
void main()
{int r;
{mass = Matrix(n);
while (1)
{clrscr();
cout<<"Vvedit` matrucy 1\nPereglyad matruci 2\nLat 3\nMag 4\nVuxid 4\n\nVvedit` regum \n";
cin>>r;
switch (r)
{case 1:{
{for (int i = 0; i <n; i++)
delete [] mass[i];
delete [] mass;}
cout << "\n Vvedit` rozmirnist` : ";
cin >> n;
Matrix(n);break;}
case 2:{ output(n);break;}
case 3:{ lat();break;}
case 4:{ mag();break;}
case 5:exit(1);}
getch();
}}}
Только работает с матрицами, размерность которых меньше 4*4, если ввожу матрицу 4*4, то появляется ошибка, в чем проблема ?
Снова я со своей квадратной матрицей.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru