Переписать код с Pascal - C (СИ)
Формулировка задачи:
Добрый вечер.
Прошу помощи по переводу кода программы из паскаля в Си.
Спасибо.
uses crt; var i,j,m:longint; begin clrscr; write('VVedite chislo:');readln(m); for i:=1 to round(sqrt(m))+1 do for j:=1 to round(sqrt(m))+1 do if i*i+j*j=m then begin write('Mojno! Chisla: ',i,' i ',j); readln;halt; end; write('NO!'); readln; end.
Решение задачи: «Переписать код с Pascal»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> main() { int i, j; float m; printf("vvedite chislo: \n"); scanf("%f", &m); for(i = 0; i < floor(sqrt(m)) + 1; i++) for(j = 0; j < floor(sqrt(m)) + 1; j++) if(i * i + j * j == m) { printf("Mojno! Chisla %d i %d", i, j); exit(0); } printf("NO!"); getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , , - Главная функция программы: main()
- Объявление переменных:
- i, j (целые числа)
- m (число с плавающей точкой)
- Вывод сообщения и запрос на ввод числа: printf(
vvedite chislo: \n
); scanf(%f
, &m); - Два вложенных цикла for, которые выполняются до тех пор, пока i и j меньше или равны квадратному корню из числа m плюс единица:
- Первый цикл for выполняет поиск всех целых чисел от 0 до корня из числа m (включительно)
- Второй цикл for выполняет поиск всех целых чисел от 0 до корня из числа m (включительно)
- Проверка условия: ii + jj равно числу m
- Если условие выполняется, то выводится сообщение
Mojno! Chisla %d i %d
, i, j и программа завершается функцией exit(0) - Если условие не выполняется, то выводится сообщение
NO!
- Вызов функции getch() для приостановки выполнения программы и ожидания нажатия клавиши
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д