Перевод с паскаля на си - C (СИ)
Формулировка задачи:
Пожалуйста, помогите перевести код с паскаля на си (не ++).
program z13; uses crt; var i,m,k,sum : longint; a : array [1..20] of longint; b : array [1..50] of longint; s : real; begin clrscr; textcolor(10); write('введите кол-во элементов таблицы: ');readln(m); for i:=1 to m do begin write('a[',i,']=');readln(a[i]);s:=s+a[i]; end; s:=s/m; writeln('среднее орифметическое: ',s);m:=round(s); write('при округлении '); if m=1 then begin write('совершенное');readln;halt; end; sum:=0;k:=1; for i:=1 to m-1 do if m mod i=0 then begin b[k]:=i;inc(k); end; for i:=1 to k-1 do sum:=sum+b[i]; if m=sum then write('совершенное') else write('не совершенное'); readln; end.
Решение задачи: «Перевод с паскаля на си»
textual
Листинг программы
#include <stdio.h> #include <math.h> int main () { int i, m, k, sum; int a[20]; int b[50]; float s; printf("введите кол-во элементов таблицы: "); scanf("%d", &m); for (i = 0; i < m; ++i) { printf("a[%d]=", i); scanf("%d", &a[i]); s = s + a[i]; } s = s / m; printf("среднее орифметическое: %f", s); m = roundf (s); printf("при округлении "); if (m = 1) { printf("совершенное"); return 0; } sum = 0; k = 1; for (i = 0; i < m; ++i) { if ((m % i) == 0) { b[k] = i; ++k; } } for (i = 0; i < k; ++i) sum = sum + b[i]; if (m == sum) printf("совершенное"); else printf("не совершенное"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими вычислениями
- Объявление переменных: i, m, k, sum, a[20], b[50], s
- Вывод сообщения и запрос на ввод количества элементов таблицы
- Организация цикла для ввода элементов таблицы a[i] и суммирования их значений
- Вычисление среднего арифметического путем деления суммы элементов на количество элементов
- Округление среднего арифметического до целого числа с помощью функции roundf
- Проверка, является ли округленное среднее арифметическим равным 1
- Если условие выполняется, то выводится сообщение
совершенное
и программа завершается - Иначе, инициализируется переменная sum и k равным 1
- Организация цикла для проверки делителей округленного среднего арифметического
- Если делитель найден, то он добавляется в массив b и увеличивается значение k
- После окончания цикла, проверяется условие, является ли сумма элементов массива b равной округленному среднему арифметическому
- Если условие выполняется, то выводится сообщение
совершенное
, иначе -не совершенное
- Возвращение значения 0, что означает успешное завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д