Перевести код с Pascal - C (СИ) (158005)

Узнай цену своей работы

Формулировка задачи:

товарищи) нужна помощь))) из паскаля на си, плиииииз!
uses crt;
const n=4;
type tel=record
      name,mark,mag:string;
      zena,skid:integer;
      st:real;
     end;
var x:array[1..n] of tel;
    i:integer;
    im:string;
    min:real;
begin
ClrScr;
for i:=1 to n do
 with x[i] do
  begin
   Write(' Название: ');
   Readln(name);
   Write(' Марка: ');
   Readln(mark);
   Write(' Цена: ');
   Readln(zena);
   Write(' Магазин: ');
   Readln(mag);
   Write(' Скидка: ');
   Readln(skid);
   Writeln(' ');
  end;
Writeln('Сводная таблица: ');
for i:=1 to n do
 x[i].st:=(x[i].zena*x[i].skid)/100;
Writeln('| Назв |Марка |Цена |Магазин | Скид | Стоимость |');
Writeln(' ');
for i:=1 to n do
 Writeln('|',x[i].name:6,'|',x[i].mark:6,'|',x[i].zena:6,'|',x[i].mag:6,
         '|',x[i].skid:6,'|',(x[i].zena-x[i].st):9:1,'|');
 Writeln(' ');
min:=x[1].st;
for i:=1 to n do
 if x[i].st<=min then
  begin
   min:=x[i].st;
   im:=x[i].name;
  end;
writeln('Самые дешевые телевизоры:');
for i:=1 to n do
if x[i].st=min then
 Writeln('|',x[i].name:6,(x[i].zena-x[i].st):9:1,'|');
Readln;
end.

Решение задачи: «Перевести код с Pascal»

textual
Листинг программы
#include <stdio.h>
#define n 4
 
typedef struct tel {
    char name[16], mark[16], shop[16];
    int price, disc;
    float val; } tel;
 
int main()
{
    tel x[n];
    unsigned short int i;
    float min;
    
    for (i = 0; i < n; i++){
        printf("Name: ");
        scanf("%s", x[i].name);
        printf("Mark: ");
        scanf("%s", x[i].mark);
        printf("Price: ");
        scanf("%d", &(x[i].price));
        printf("Shop: ");
        scanf("%s", x[i].shop);
        printf("Discount: ");
        scanf("%d", &(x[i].disc));
        printf("\n");}
    printf("Free table: \n");
    for (i = 0; i < n; i++)
        x[i].val = x[i].price * x[i].disc / 100;
    printf("| Name |Mark |Price |Shop | Discount | Value |\n\n");
    for (i = 0; i < n; i++)
        printf("| %6s |%6s |%6d |%6s | %6d | %9.1f |\n\n", \
                x[i].name, x[i].mark, x[i].price, x[i].shop, x[i].disc, (x[i].price-x[i].val));
    min = x[0].val;
    for (i = 1; i < n; i++)
        if (x[i].val <= min)
            min = x[i].val;
    printf("The cheapest TVs: \n");
    for (i = 0; i < n; i++)
        if (x[i].val == min)
            printf("|%6s %9.1f|\n", x[i].name, (x[i].price-x[i].val));
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с консолью и объявляем переменную n (количество телевизоров) и определяем тип данных для структуры tel.
  2. Создаем массив структур tel с размером n.
  3. Задаем цикл, который будет выполняться n раз, где i - это номер телевизора.
  4. В каждой итерации цикла, мы запрашиваем у пользователя значения для каждого поля структуры tel (название, марка, цена, магазин и скидка) и сохраняем их в соответствующие поля массива x.
  5. После завершения цикла, выводим все значения на экран в формате таблицы.
  6. Вычисляем значение val для каждого телевизора (цена минус значение скидки).
  7. Находим минимальное значение val среди всех телевизоров.
  8. Выводим на экран все телевизоры с минимальным значением val.
  9. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

7   голосов , оценка 4.286 из 5