Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mihal
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 25
#1

Калькулятор - исключение при делении на 0 - C++

07.10.2012, 17:08. Просмотров 998. Ответов 3
Метки нет (Все метки)

Здравствуйте, я решил написать простой калькулятор, вот он:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<conio.h>
#include<locale.h>
#include<stdio.h>
#define END '0'
#define ERROR -1
#include<stdlib.h>
int main() {
  setlocale( LC_ALL, "Ukrainian");
  int a, b, c;
  char sign;
  while(1){
  printf("Введiть а:\n"); 
  scanf(" %d",&a); 
  printf("Введiть b:\n");
  scanf(" %d",&b);
  printf("Введiть операцiю:\n") ;
  scanf(" %c",&sign);
  switch (sign)
  {
     case '-': c = a - b; break;
     case '+': c = a + b; break;
     case '*': c = a * b; break;
     case '/':  
          if(b==0){
              printf("Дiлити на 0 неможна");
              c=ERROR;
           }
           else{
               c=a/b;break;
             }
     case '%': c = a % b; break;
     case END: exit(1);
     default: c=ERROR; 
}
         if(c!=ERROR)
             printf("%d%c%d=%d\n",a,sign,b,c);
         else
             printf("Невiрна операцiя(%c)\n");
 
  }
  getch();
  return 0;
}
Когда я делю на 0 то выскакивает вот такое:
Калькулятор - исключение при делении на 0
Как это исправить?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 17:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор - исключение при делении на 0 (C++):

Найти все пятизначные числа, которые при делении на A дают в остатке B, а при делении на C дают в остатке D - C++
C++ Напишите программу, которая вводит четыре натуральных числа (a, b, c и d) и находит все пятизначные числа, которые при делении на a...

Найти числа, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47 - C++
Мне нужно написать программу в Dev-C++ для поиска трехзначных чисел, которые при делении на 47 дают в остатке 43, а при делении на 43 дают...

При делении 2 на 4 результат - 0 - C++
Стыдно, но не могу понять, почему компилятор выдает 0. Есть код функции:int high = 0; int mid = 0; int h; int m; int in; ...

Округление при делении - C++
Всем привет. Как математически округлить такое? int a = 7; int b = 4; double c = a/b; Суть в том, что а и b могут быть любые....

При делении округляет - C++
Объясните мне, пожалуйста, такой казус: double e=0,k=2; e=352*k+1; e/=25; cout&lt;&lt;e&lt;&lt;endl; На экран выдает: 28,2 А когда...

Ошибка при делении - C++
Как ни кручу все время получается r = 1. Я в вычислении что-то не так делаю или при выводе? double a, b, r; ...

3
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:14 #2
C++
1
2
3
else{
   c=a/b;
}break;
#define ERROR -1 - не очень удачное решение
а что если я захочу посчитать 2-3 ?
1
mihal
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 25
07.10.2012, 17:17  [ТС] #3
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
3
else{
   c=a/b;
}break;
#define ERROR -1 - не очень удачное решение
а что если я захочу посчитать 2-3 ?
А как это можно исправить?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:27 #4
Либо поменять -1 на другое значение, которое встречается гораздо реже. Например, максимально возможное значение для int. Либо сделать отдельную переменную, отвечающую за ошибку.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 17:27
Привет! Вот еще темы с ответами:

При делении 4/6 выдает 4 в цикле - C++
int TForm1::faktorial(int a) { int sumN=1; for(int i=1;i&lt;=a;i++) sumN*=i; ...

Ошибка при делении чисел - C++
Ошибка при делении чисел. Значения MaxEuroToDol и MaxEuroDolToEuro всегда получаются равными 1 или 0 (Проверка в строке 178). Задание:...

Что возвращать при делении на ноль? - C++
Что возвращать при делении на ноль? Или какое бросать исключение?

Как происходит переполнение при делении - C++
Форумчане,подскажите желательно на С++, каким образом происходить переполнение буфера(или стэка) при операции деления?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
07.10.2012, 17:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru