+ 2
What is wrong in this code?
#include<stdio.h> int main(int argc, char *argv[]) { float C_P,S_P; float profit=S_P-C_P; float profit percentage=(profit*100)/C_P; printf("क्रय मूल्य=₹"); scanf("%f",&C_P); printf("विक्रय मूल्य=₹"); scanf("%f",&S_P); if(S_P>C_P){ printf("लाभ=₹%.2f ",S_P-C_P);} if(C_P>S_P){ printf("हानि=₹%.2f",C_P-S_P);} if(S_P>C_P){ printf("लाभ प्रतिशत=%f",profit percentage);}}
5 Answers
+ 2
An underscore between profit and percentage line 6. Space are not allowed in variable name
+ 2
Yogesh Kumar the variables are not given an initial value before they are used. They will hold whatever random value happens to be in the memory location at run time.
If C_P happens to get initialized with zero, then the program will start out with a division by zero error.
The program is prompting for the values only AFTER the calculations are being performed. Understand that program lines are executed in sequence from top to bottom.
1. Declare the variables
2. Prompt for input values
3. Calculate
4. Print the results.
(You have steps 2 and 3 swapped out of order)
+ 1
Okay
+ 1
Brian yeah that's True but it is not a problem to run the programm
0
There are a few issues with this code:
1. profit and profit percentage are defined and calculated before the values for C_P and S_P are inputted by the user. Therefore, profit and profit percentage will always be equal to 0. You should move the definitions of these variables after the user inputs the values for C_P and S_P.
2. The if statement for calculating the profit percentage is incomplete. It is missing the opening curly brace { after the if statement.
Following is correct code:
#include<stdio.h>
int main(int argc, char *argv[])
{
float C_P, S_P;
printf("क्रय मूल्य=₹");
scanf("%f", &C_P);
printf("विक्रय मूल्य=₹");
scanf("%f", &S_P);
if (S_P > C_P) {
float profit = S_P - C_P;
printf("लाभ=₹%.2f ", profit);
float profit_percentage = (profit * 100) / C_P;
printf("लाभ प्रतिशत=%f", profit_percentage);
}
if (C_P > S_P) {
printf("हानि=₹%.2f", C_P - S_P);
}
}