вы пропустили переключатель (чо) в
scanf(" %c",&cho);
{
<<< HERE >>>
case 'c':printf("Enter the value of Kelvin : ");
scanf("%f",&ke);
ce=ke-273.15;
printf("%f c",ce);
break;
case 'f':printf("Enter the value of Kelvin : ");
scanf("%f",&ke);
fa=ke-(273.15)*9/5+32;
printf("%f f",fa);
break;
}
Я призываю вас правильно делать отступы / обрезать строки, чтобы избежать такой ошибки, так как ваш код трудно прочитайте
Я также рекомендую вам проверить результат вашего scanf , чтобы убедиться, что пользователь вводит правильное значение (например, не конец файла для вариантов выбора и недопустимое значение с плавающей точкой в других случаях), иначе вы работа с возможно не инициализированными значениями
main должна возвращать int , а не ничего ( void )
Добавить перевод строки в вашем последнем printf на грипп sh сообщения
Укажите неверный ввод во всех соответствующих случаях
Так, например (я добавил код в комментарии для компиляции под Распбианом)
#include<stdio.h>
/*#include<conio.h>*/
int main()
{
float ke,fa,ce;
char choice;
/*clrscr();*/
printf("1.Celcius(C)\n2.Kelvin(K)\n3.Fahrenheit(F)\n\n");
printf("Enter your choice : ");
if (scanf("%c",&choice) != 1)
{
/* EOF */
return 0;
}
switch(choice)
{
case 'C':
printf("1.Kelvin(k)\n2.Fahrenheit(f)\n\n");
printf("Enter your choice : ");
if (scanf(" %c",&choice) != 1)
{
/* EOF */
return 0;
}
switch(choice)
{
case 'k':
printf("Enter the value of Celcius : ");
if (scanf("%f",&ce) != 1)
printf("invalid value\n");
else
{
ke=ce+273.15;
printf("%f k\n",ke);
}
break;
case 'f':
printf("Enter the value of Celcius : ");
if (scanf("%f",&ce) != 1)
printf("invalid value\n");
else
{
fa=(ce*9/5)+32;
printf("%f f\n",fa);
}
break;
default:
printf("Invalid choice\n");
}
break;
case 'K':
printf("1.Celcius(c)\n2.Fahrenheit(f)\n\n");
printf("Enter your choice : ");
if (scanf(" %c",&choice) != 1)
{
/* EOF */
return 0;
}
switch (choice)
{
case 'c':
printf("Enter the value of Kelvin : ");
if (scanf("%f",&ke) != 1)
printf("invalid value\n");
else
{
ce=ke-273.15;
printf("%f c\n",ce);
}
break;
case 'f':
printf("Enter the value of Kelvin : ");
if (scanf("%f",&ke) != 1)
printf("invalid value\n");
else
{
fa=ke-(273.15)*9/5+32;
printf("%f f\n",fa);
}
break;
default:
printf("Invalid choice\n");
}
break;
default:
printf("Invalid choice\n");
}
/*getch();*/
return 0;
}
Казни:
pi@raspberrypi:/tmp $ gcc -Wall t.c
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : 1
Invalid choice
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : C
1.Kelvin(k)
2.Fahrenheit(f)
Enter your choice : a
Invalid choice
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : C
1.Kelvin(k)
2.Fahrenheit(f)
Enter your choice : k
Enter the value of Celcius : 12
285.149994 k
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : C
1.Kelvin(k)
2.Fahrenheit(f)
Enter your choice : f
Enter the value of Celcius : aze
invalid value
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : C
1.Kelvin(k)
2.Fahrenheit(f)
Enter your choice : f
Enter the value of Celcius : 12
53.599998 f
pi@raspberrypi:/tmp $ ./a.out
1.Celcius(C)
2.Kelvin(K)
3.Fahrenheit(F)
Enter your choice : K
1.Celcius(c)
2.Fahrenheit(f)
Enter your choice : c
Enter the value of Kelvin : 1
-272.149994 c