|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.05.2008, 00:47 | #1 |
Пользователь
Регистрация: 06.03.2008
Сообщений: 20
|
помогите решить
блин уже немного подучилса на С++ но всеравно пока неважно..вот кто чё скажет - "построить целочисленую квадратическую матрицу которая есть "магическим" квадратом, тоесть у которой суммы в каждом столбике , строке и у каждой из 2 диагоналей равны между собой" хоть с какой стороны к нему подойти?
|
08.05.2008, 00:52 | #2 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
|
09.05.2008, 02:30 | #3 |
Регистрация: 09.05.2008
Сообщений: 5
|
ВОт решениЕ:
include <stdio.h> #include <conio.h> #define SZ 5 // максимальный размер матрицы [void main () int a[SZ] [SZ]; // матрица int n; // размер проверяемой матрицы int ok; // матрица - "магический" квадрат int i,j; // индексы массива int sum; // сумма эл-тов главной диагонали int temp; // сумма элементов текущей строки, // столбца или второй диагонали матрицы printf("*** МАГИЧЕСКИЙ КВАДРАТ ***\п"); printf("ХпВведите размер матрицы (3..%i) -> ", SZ) ; scanf("%i", &n); printf("Введите строки матрицьДп"); printf("После ввода строки, %i целых чисел, ", п); printf("нажимайте <Enter>\n"); for (i =0; i < n; i++) printf("->"); for (j =0; j < n; j++) scanf("%i", &a[i][j]); ok = 1; // пусть матрица - "магический" квадрат // вычислим сумму элементов главной диагонали sum = 0; for (i = 0; i < n; i++) sum += a[i][i]; // вычисляем суммы по строкам i = 0; do { temp =0; // сумма эл-тов текущей строки for (j = 0; j < n; j++) temp += a[i] [j] ; (temp != sum) ok = 0; } while (ok && i < n); if ( ok )// здесь сумма элементов каждой строки // равна сумме элементов главной диагонали // вычисляем суммы по столбцам j = 0; do { temp =0; // сумма эл-тов текущего столбца for (i = 0; i < n; i++) temp += a[i][j]; if (temp != sum) ok = 0;} while (ok && i < n) ; if ( ok ,) { // здесь сумма элементов каждой строки // равна сумме элементов каждого столбца и // сумме элементов главной диагонали. // Вычислим сумму элементов второй // главной диагонали temp = 0; i = n - 1; for (j = 0; j < n; j++) temp += a[i— ] [j] ; if (temp != sum) ok = 0; } printf("Введенная матрица "); if ( !ok ) printf("не "); printf("является \"магическим\"квадратом.\n"); printf("ХпДля завершения нажмите <Enter>"); getch(); |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить | SPARTA | Помощь студентам | 3 | 03.07.2008 17:01 |
Помогите решить | maximon | Помощь студентам | 10 | 26.12.2007 19:25 |