Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 160-179)

Задача 164.

// Проверяет, является ли матрица "магическим" квадратом
#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();

Задача 165.

// Приветствие #include <stdio.h>
#include <conio.h> void main() {
char name[15]; // имя
char fam[20]; // фамилия
printf("Как Вас зовут?\п");
printf("Введите свое имя и фамилию,");
printf("затем нажмите Enter");
printf(" › ");
scanf("%s", &name);
scanf("%s", sfam);
// функция scanf читает из буфера клавиатуры символы
//до разделителя – пробела
printf("Здравствуйте, Is %s!\n", name, f am);
printf("\п Для завершения нажмите Enter");
getch();

Задача 166.

// Приветствие (посимвольный ввод строки)
#include <stdio.h> #include <conio.h> void main()
char name[40]; // имя и отчество пользователя char ch; int i;
printf("Как Вас зовут?\п");
printf("(введите свое имя, отчество и нажмите Enter");
printf(" › "); i = 0;
while ((ch=getch())!= 13 && i < 40) // пока не нажата клавиша Enter
h); name[i++] -ch; }
namefi] = '\0'; printf("ХпЗдравствуйте, %s!\n", name);
 printf("\Для завершения нажмите Enter");
getch();
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.