-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathc code.cpp
More file actions
126 lines (114 loc) · 2 KB
/
Copy pathc code.cpp
File metadata and controls
126 lines (114 loc) · 2 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <iostream>
#include<stdio.h>
using namespace std;
int multiplication(int num_1, int num_2);
int addition(int num1, int num2);
int subtraction(int num1,int num2);
int division (int num1 ,int num2);
void main(){
char cc=0;
int num=0,num2,num1=0;
int(*operator1_ptr)(int, int) ;
int(*operator2_ptr)(int, int) ;
int flag=0;
operator1_ptr=addition;
while(cc != 'q'){
cin>>cc;
if(cc>47 && cc<58){
num=10*num +cc-48;
flag =0;
}
else if(cc>41 && cc<48){
switch (cc) {
case 42:
operator2_ptr =multiplication;
break;
case 43:
operator2_ptr = addition;
break;
case 44 :
cout<<"invalid input";
num=0;
num1=0;
operator1_ptr=addition;
break;
case 45:
operator2_ptr = subtraction;
break;
case 46:
cout<<"invalid input";
num=0;
num1=0;
operator1_ptr=addition;
break;
case 47:
operator2_ptr = division;
}
if(flag==1)
operator1_ptr=operator2_ptr;
else{
num2=num;
num1= operator1_ptr(num1,num2);
operator1_ptr= operator2_ptr;
}
flag=1;
num=0;
}
else if(cc == '='){
num2=num;
if(flag==1)
cout<<operator1_ptr(num1,num1)<<"\t";
else
cout<<operator1_ptr(num1,num)<<"\t";
num=0;
num1=0;
operator1_ptr=addition;
}
else {
cout<<"invalid input";
num=0;
num1=0;
operator1_ptr=addition;
}
}
cout<<"byeee";
}
int multiplication(int num_1, int num_2){
int temp=num_1;
num_1=0;
while(num_2 != 0){
num_1=num_1+temp;
num_2-- ;
}
return num_1;
}
int addition(int num1, int num2){
return num1+num2;
}
int subtraction(int num1,int num2){
return num1-num2;
}
int division (int num1 ,int num2){
int remain;
int counter=0;
if(num2 == 0){
printf("math error");
return 0 ;// actually returning to beginning not 0.
}
else if(num1<0 ){
num1=-num1;
return -(division(num1,num2));
}
else {
while (num1>0){
num1=num1-num2;
if (num1>=0)
counter ++;
}
if(num1==0)
remain=0;
else
remain= num1+num2;
}
return counter;
}