Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Лабараторная работа №2
- Задача №1
- Дата написания: 20.04.2012
- Группа: ВМИ-111, ЮУрГУ
- Выполнил: Туприков Максим
- */
- #include <stdio.h>
- #include <conio.h>
- #include <clocale>
- int main() // Основная программа
- {
- setlocale(LC_ALL, "Russian");
- FILE* text_file;
- text_file = fopen("input.txt","r");
- if(text_file == 0)
- {
- printf("Ошибка! Не могу открыть файл input.txt. Для завершения работы нажмите Ввод");
- getch();
- return 0;
- }
- int n; // кол-во строк в магическом квадрате
- bool Result = 1; // является ли квадрат магическим. 1 - да. 0 - нет.
- fscanf(text_file,"%i", &n);
- int a[10][10]; // чтение самого квадрата
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++)
- fscanf(text_file, "%i", &a[i][j]);
- fclose(text_file);
- int Value = 0; // вычисление возможного числа магического квадрата
- for (int i = 0; i < n; i++)
- Value += a[0][i];
- int TmpValueH, TmpValueV; // переменная для проверки числа маг. квадрата
- for (int i = 0; i < n; i++)
- {
- TmpValueH = TmpValueV = 0;
- for (int j = 0; j < n; j++)
- {
- TmpValueH += a[i][j];
- TmpValueV += a[j][i];
- }
- if ( (TmpValueH != Value) || (TmpValueV!= Value) )
- Result = 0;
- }
- int TmpValue = 0; // Проверка диагонали
- for (int i = 0; i < n; i++)
- TmpValue += a[i][i];
- if (TmpValue != Value)
- Result = 0;
- text_file = fopen("output.txt","w"); // запись ответа в файл
- if (Result)
- fprintf(text_file,"YES");
- else fprintf(text_file,"NO");
- fclose(text_file);
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- printf("%i ", a[i][j]);
- printf("\n");
- }
- printf("Программа выполнена успешно.\nДля завершения работы нажмите Ввод");
- getch();
- return 0;
- }
- /*---Тесты
- Номер входные данные ожидаемый результат действительный: Тест пройден?
- 1. корректные, явл. YES YES Да
- магическим квадратом
- 2. N < действ. сторон ---- проверяет не Нет
- квадрата весь квадрат
- 3. N > действ. сторон ---- берет не объявл. Нет
- квадрата числа. NO
- */
Advertisement
Add Comment
Please, Sign In to add comment