Здравствуйте! Я с недавнего времени начал изучать язык С++ и, естественно, мне захотелось сразу что-то создать. Решил я создать калькулятор с функцией перевода из радианов в градусы и наоборот. К моему превеликому счастью написанная программа скомпилировалась без ошибок, но при запуске ппрограммма завершается стоит мне только нажать одну кнопку. Вопрос программистам: В чём проблема и где моя ошибка? Прилагаю код программы:
#include <stdio.h>
int main(void)
{
/Ввожу переменную для выбора
int iChoose;
printf("Hazchmite 1 dlja vhoda v rezchim kalkuljatora\n 2 dlja perevoda uz gradusov v radianbI ulu 3 dlja perevoda uz radianov v gradysbi");
iChoose=getchar();
if (iChoose==1){
//Режим калькулятор
float a, c;
char b;
printf("Vvedite chiclo znak chiclo bez probela: ");
scanf("%f %c %f", &a, &b, &c);
switch (b){
case'+':printf("%.2f", a+c); break;
case'-':printf("%.2f", a-c); break;
case'*':printf("%.2f", a*c); break;
case'/':printf("%.2f", a/c); break;
default:("ERROR");break;
}
}
else{
//режимы перевода
if (iChoose == 2){
float fRad, fGrad;
printf("Vvedite kol-vo gradycoB: ");
scanf("%f", &fGrad);
fRad = 3.14*fGrad;
fRad/=180;
printf("\nKol-vo paduanoB: %.2f", fRad);
}
else{
if (iChoose == 3) {
float fRad, fGrad;
printf("Vvedite kol-vo radianov");
scanf("%f", &fRad);
fGrad=180*fRad/3.14;
printf("Kol-vo: %.2f", fGrad);
}
else
printf("ERROR");
}
}
return (0);
}
Заранее спасибо за ответы. Все права сохранены, копирование преследуется по закону!
Другие языки программирования и технологии
Нужна помощь с программой в С++
#include <stdio.h>
#include <stdlib.h>
int main() {
// Ввожу переменную для выбора
int iChoose;
printf("Hazchmite 1 dlja vhoda v rezchim kalkuljatora\n"
"2 dlja perevoda uz gradusov v radianbI\n"
"3 dlja perevoda uz radianov v gradysbi\n");
iChoose=getchar();
if (iChoose == '1') {
//Режим калькулятор
float a, c;
char b;
printf("Vvedite chiclo znak chiclo bez probela: ");
scanf("%f %c %f", &a, &b, &c);
switch (b){
case'+':printf("%.2f\n", a+c); break;
case'-':printf("%.2f\n", a-c); break;
case'*':printf("%.2f\n", a*c); break;
case'/':printf("%.2f\n", a/c); break;
default:("ERROR");break;
}
} else if (iChoose == '2') {
float fRad, fGrad;
printf("Vvedite kol-vo gradycoB: ");
scanf("%f", &fGrad);
fRad = 3.14 * fGrad;
fRad /= 180;
printf("\nKol-vo paduanoB: %.2f\n", fRad);
} else if (iChoose == '3') {
float fRad, fGrad;
printf("Vvedite kol-vo radianov: ");
scanf("%f", &fRad);
fGrad=180*fRad/3.14;
printf("Kol-vo: %.2f\n", fGrad);
} else {
printf("ERROR\n");
}
system("pause");
}
#include <stdlib.h>
int main() {
// Ввожу переменную для выбора
int iChoose;
printf("Hazchmite 1 dlja vhoda v rezchim kalkuljatora\n"
"2 dlja perevoda uz gradusov v radianbI\n"
"3 dlja perevoda uz radianov v gradysbi\n");
iChoose=getchar();
if (iChoose == '1') {
//Режим калькулятор
float a, c;
char b;
printf("Vvedite chiclo znak chiclo bez probela: ");
scanf("%f %c %f", &a, &b, &c);
switch (b){
case'+':printf("%.2f\n", a+c); break;
case'-':printf("%.2f\n", a-c); break;
case'*':printf("%.2f\n", a*c); break;
case'/':printf("%.2f\n", a/c); break;
default:("ERROR");break;
}
} else if (iChoose == '2') {
float fRad, fGrad;
printf("Vvedite kol-vo gradycoB: ");
scanf("%f", &fGrad);
fRad = 3.14 * fGrad;
fRad /= 180;
printf("\nKol-vo paduanoB: %.2f\n", fRad);
} else if (iChoose == '3') {
float fRad, fGrad;
printf("Vvedite kol-vo radianov: ");
scanf("%f", &fRad);
fGrad=180*fRad/3.14;
printf("Kol-vo: %.2f\n", fGrad);
} else {
printf("ERROR\n");
}
system("pause");
}
"копирование преследуется по закону"? а что тут копировать? какашки твои? (да и то передранные у кого-то)
iChoose=getch();
так пробовал?
так пробовал?
Твоя ошибка в том, что getchar возвращает код символа. Если ты посмотришь на таблицу ASCII, то увидишь, что коды цифр лежат в диапазоне от 48 до 57. Поэтому, либо нужно в проверках писать не if (iChoose == 1), а if (iChoose == '1'). Или же, просто в iChoose отнимать код нуля:
iChoose = getchar() - '0';
iChoose = getchar() - '0';
Похожие вопросы
- Нужна помощь программиста, программа по работе с FTP. Подробности в пояснении.
- Нужна помощь с программой на ассемблере - комментирование каждой строки
- Очень нужна помощь с программой на с++
- Здравствуйте нужна помощь по программе на языке паскаль
- С помощью какой программы можно нарисовать такие картинки ?
- Нужна помощь кто знает программу Corel Draw
- (C++) Нужна помощь в написании 4-х программ. максимально простые, уровень с++ нулевой практически.
- Вот мне интересно, с помощью какой программы - можно создать ПРОГРАММУ? :D
- Нужна помощь)) Есть условие задачи для создания программы на СИ++
- Нужна помощь в настройке программы, в математике я ноль :)