Yes, I need to transform it to char because the given printf() function accepts char parameters.
I did some debugging and some inspiration from your code, the issue seems to lie in the conversion.
The conversion of int to char doesn't work. Why ?
Code:
#include <stdio.h>
#include <stdlib.h>
int gradeint;
char grade;
/* function declaration */
int getMark();
void print(char grade);
char convert(int mark);
int main(int argc, char** argv) {
//getMark();
char retConvert;
retConvert = convert(getMark());
print(retConvert);
return (EXIT_SUCCESS);
}
int getMark(){
printf("Enter your grade: ");
scanf(" %d", &gradeint);
printf("What you have entered as your grade: %d\n", gradeint);
return gradeint;
}
char convert(int mark){
printf("mark is %d\n", mark); // prints correctly
// converts int to char
grade = mark + '0';
printf( "grade is %c\n", grade); // prints wrongly
return grade;
}
void print(char grade){
if(grade >= 80){
printf("Your grade is an A\n");
}
else if (grade >= 70){
printf("Your grade is a B\n");
}
else if (grade >= 60){
printf("Your grade is a C\n");
}
else if (grade >= 50){
printf("Your grade is a D\n");
}
else if (grade >= 40){
printf("Your grade is an E\n");
}
else{
printf("Your grade is a F\n");
}
}