Can anyone fix my C programming code? (without changing the format) It gives me
ID: 647381 • Letter: C
Question
Can anyone fix my C programming code? (without changing the format)
It gives me wrong output.
Code:
#include <stdio.h>
#include <math.h>
void main(void)
{
double du, i, cost;
int n;
char t;
printf("How many calls do you want to evaluate");
scanf_s("%d", &n);
while (n!=0)
{
printf("Enter the time call is made (d is day, e is evening, n is night)");
scanf_s("%s", &t);
printf("Enter the duration of call(this must be in minutes like 8.2)");
scanf_s("%Lf", &du);
printf("The cost of %d call is $%lf",n++ , cost);
switch (t)
{
case 'd':
if (du > 1 && du < 10){
i = ceil(du);
cost = 0.10 / i;
}
else if (du>10 && du < 30){
i = ceil(du);
cost = 1.0 + 0.08 / i;
}
else{
i = ceil(du);
cost = 2.60 + 0.06 / i;
}
case 'e':
if (du > 1 && du < 10){
i = ceil(du);
cost = 0.07 / i;
}
else if (du>10 && du < 30){
i = ceil(du);
cost = 1.0 + 0.05 / i;
}
else{
i = ceil(du);
cost = 1.70 + 0.04 / i;
}
case 'n':
if (du > 1 && du < 10){
i = ceil(du);
cost = 0.04 / i;
}
else if (du>10 && du < 30){
i = ceil(du);
cost = 0.40 + 0.03 / i;
}
else{
i = ceil(du);
cost = 1.00 + 0.02 / i;
}
default:
;
}
}
n++;
}
It should give an output like this:
Explanation / Answer
#include<stdio.h>
#include<math.h>
void main()
{
float du,i,cost;
int n;
char t;
printf("How many calls do you want to evaluate");
scanf("%d", &n);
while (n != NULL)
{
printf("Enter the time call is made (d is day, e is evening, n is night)");
scanf("%s", &t);
printf("Enter the duration of call(this must be in minutes like 8.2)");
scanf("%f", &du);
switch (t)
{
case 'd':
if (du > 1 && du < 10)
{
i = ceil(du);
cost = 0.10 / i;
}
else if (du>10 && du < 30)
{
i = ceil(du);
cost = 1.0 + 0.08 / i;
}
else
{
i = ceil(du);
cost = 2.60 + 0.06 / i;
}
printf(" The cost of call is $%f ", cost);
case 'e':
if (du > 1 && du < 10)
{
i = ceil(du);
cost = 0.07 / i;
}
else if (du>10 && du < 30)
{
i = ceil(du);
cost = 1.0 + 0.05 / i;
}
else
{
i = ceil(du);
cost = 1.70 + 0.04 / i;
}
printf(" The cost of call is %f ", cost);
case 'n':
if (du > 1 && du < 10)
{
i = ceil(du);
cost = 0.04 / i;
}
else if (du>10 && du < 30)
{
i = ceil(du);
cost = 0.40 + 0.03 / i;
}
else
{
i = ceil(du);
cost = 1.00 + 0.02 / i;
}
printf(" The cost of call is %f ", cost);
default:
// return 0;
getch();
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.