Переписать код с 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() для приостановки выполнения программы и ожидания нажатия клавиши
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д