Code:
#include <stdio.h>
#define STOP_INPUT 101
int cnt=0,check,scanf_result;
double min=0,max=0,average=0,sum=0,grade;
int main(){
printf("Please enter the grades : ");
while(grade!=STOP_INPUT){
scanf_result=scanf("%lf", &grade);//We get inout from user and save what scanf itself return (if there is error ,,, )
if(scanf_result<1){
printf("\nYou entered ilegall value,all values must be numbers\n");
//No need to check if its in range 0 - 100,because its given that numbers are only in range 0 - 100!
return 1;
}
if(grade!=STOP_INPUT){
sum+=grade;
if(grade>max){
max=grade;
}
if(cnt==0){
min=max;
}
if(grade<min){
min=grade;
}
cnt++;
}
else{//We check if grade=101
if(cnt==0){//We check if cnt still equals 0,so it means this grade is the first which means user didnt enter any real grade!
printf("\nYou didn't enter any grade!");
}
}
}
if(cnt!=0){
average=sum/(double)(cnt);
check=average-average/10;//the methos average%10 DIDN'T work,it gave me error of operands! dont know whats this,so I used this.
if(check==0){
printf("\nYour average is : %d \n", (int)(average));
}
else{
printf("\nYour average is : %.2lf \n", average);
}
printf("Your Heighst grade is : %lf \n", max);
printf("Your Lowest grade is : %lf \n", min);
}
printf("\n");
return 0;
}