Перевести код с 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и объявляем переменную
n
(количество телевизоров) и определяем тип данных для структурыtel
. - Создаем массив структур
tel
с размеромn
. - Задаем цикл, который будет выполняться
n
раз, гдеi
- это номер телевизора. - В каждой итерации цикла, мы запрашиваем у пользователя значения для каждого поля структуры
tel
(название, марка, цена, магазин и скидка) и сохраняем их в соответствующие поля массиваx
. - После завершения цикла, выводим все значения на экран в формате таблицы.
- Вычисляем значение
val
для каждого телевизора (цена минус значение скидки). - Находим минимальное значение
val
среди всех телевизоров. - Выводим на экран все телевизоры с минимальным значением
val
. - Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д