Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2008, 00:47   #1
OIOI
Пользователь
 
Регистрация: 06.03.2008
Сообщений: 20
Стрелка помогите решить

блин уже немного подучилса на С++ но всеравно пока неважно..вот кто чё скажет - "построить целочисленую квадратическую матрицу которая есть "магическим" квадратом, тоесть у которой суммы в каждом столбике , строке и у каждой из 2 диагоналей равны между собой" хоть с какой стороны к нему подойти?
OIOI вне форума Ответить с цитированием
Старый 08.05.2008, 00:52   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

пжалста.
http://rk6-1-2003.narod.ru/files/3sem/magic.html
vvviperrr вне форума Ответить с цитированием
Старый 09.05.2008, 02:30   #3
Nina
 
Регистрация: 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();
Nina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить SPARTA Помощь студентам 3 03.07.2008 17:01
Помогите решить maximon Помощь студентам 10 26.12.2007 19:25