Доработка программы определения стоимости разговора по телефону с учетом скидки - C (СИ)
Формулировка задачи:
Написать программу определения стоимости разговора по телефону с учетом скидки 20%, предоставляемой по субботам и воскресеньям. Исходные данные (длительность разговора в минутах и номер дня недели) вводятся из файла Input.txt. Результаты работы программы записываются в файл Out.txt. Стоимость минуты разговора задать как константу.
#include <stdio.h>
int main()
{ FILE *sum, *inp;
int m,d,price=23;
float cost;
inp=fopen("inp.txt", "r");
sum=fopen("out.txt", "w");
printf("Vvedite kol min");
fscanf(inp,"%i ", &m);
do{
printf("Vvedite den` nedely");
fscanf(inp,"%i", &d);
if (d<8) printf("Neverno ot 1 do 7");{
do (d>0) || (d<8)
cost= price*m;
if x>5{cost=cost*0.8;}
fprintf(sum,"%f", cost);}
fclose(sum);
fclose(inp);
getch();
return 0;
}Решение задачи: «Доработка программы определения стоимости разговора по телефону с учетом скидки»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
int main()
{
FILE *sum, *inp;
int m, d, price = 23;
float price_discount = 18.4;//-20%
float cost = 0.0;
float allsum = 0.0;
inp = fopen("1.txt", "r");
sum = fopen("2.txt", "w");
while(fscanf(inp, "%d", &m) != EOF)
{
fscanf(inp, "%d", &d);
if (d > 0 && d <= 5)
{
cost = price * m;
fprintf(sum,"%f\n", cost);
}
else if(d == 6 || d == 7)
{
cost = price_discount * m;
fprintf(sum,"%f\n", cost);
}
else
{
printf("Neverno ot 1 do 7");
}
allsum += cost;
cost = 0.0;
}
fprintf(sum,"Itogo = %f\n", allsum);
fclose(sum);
fclose(inp);
getch();
}
Объяснение кода листинга программы
- Включаются заголовочные файлы stdio.h и conio.h
- Объявляется функция main()
- Создаются указатели на файлы inp и sum, которые будут использоваться для чтения и записи данных
- Инициализируются переменные m, d, price и price_discount
- Создаются переменные cost и allsum, которые будут использоваться для хранения стоимости и общей суммы соответственно
- Открывается файл 1.txt для чтения и файл 2.txt для записи
- Запускается цикл while, который будет выполняться до тех пор, пока не будет достигнут конец файла 1.txt
- Внутри цикла считываются значения переменных m и d из файла 1.txt
- С помощью условного оператора if проверяется значение переменной d. Если оно находится в диапазоне от 1 до 5, то выполняется блок кода, который присваивает переменной cost значение произведения price и m, а затем записывает это значение в файл 2.txt
- Если значение переменной d равно 6 или 7, то выполняется другой блок кода, который присваивает переменной cost значение произведения price_discount и m, а затем записывает это значение в файл 2.txt
- Если значение переменной d не соответствует ни одному из вышеуказанных условий, то выводится сообщение
Neverno ot 1 do 7 - К переменной allsum прибавляется значение cost
- Переменная cost сбрасывается в ноль
- Завершается цикл while
- В файл 2.txt записывается строка
Itogo =, а затем значение переменной allsum - Закрываются файлы sum и inp
- Вызывается функция getch(), которая приостанавливает выполнение программы до нажатия клавиши