Перевод с паскаля на си - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и математическими вычислениями
  2. Объявление переменных: i, m, k, sum, a[20], b[50], s
  3. Вывод сообщения и запрос на ввод количества элементов таблицы
  4. Организация цикла для ввода элементов таблицы a[i] и суммирования их значений
  5. Вычисление среднего арифметического путем деления суммы элементов на количество элементов
  6. Округление среднего арифметического до целого числа с помощью функции roundf
  7. Проверка, является ли округленное среднее арифметическим равным 1
  8. Если условие выполняется, то выводится сообщение совершенное и программа завершается
  9. Иначе, инициализируется переменная sum и k равным 1
  10. Организация цикла для проверки делителей округленного среднего арифметического
  11. Если делитель найден, то он добавляется в массив b и увеличивается значение k
  12. После окончания цикла, проверяется условие, является ли сумма элементов массива b равной округленному среднему арифметическому
  13. Если условие выполняется, то выводится сообщение совершенное, иначе - не совершенное
  14. Возвращение значения 0, что означает успешное завершение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы