errors

what do these mean

1
2
3
4
C:\Users\Desktop\c++\New folder\2cdcalc\main.cpp||In function 'int main()':|
C:\Users\Desktop\c++\New folder\2cdcalc\main.cpp|91|error: jump to case label|
C:\Users\Desktop\c++\New folder\2cdcalc\main.cpp|38|error:   crosses initialization of 'int total'|
||=== Build finished: 2 errors, 0 warnings ===|
Last edited on
Posting your code will make this easier.
l
Last edited on
?
On line 59, you declare int total inside of case 1: of your switch. This isn't allowed as it is destructed at line 107; if you go directly to case 2, you'll be destructing an int that was never constructed. You can use a pair of curly braces to force a scope inside your case 1: to avoid the issue.
See if this helps.
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> // declare all of the libraries
#include <cstdlib>
#include <cmath>

using namespace std; // this is for cout and cin

// declare the variables
    double num;
    int operation;
    int howmany = 0;
    int howmanynum;
    int restart;
    int menuchoice;

class setup
{
public:

    void menu()
{
    cout << endl << "Enter 1 to use the calculater." << endl << "Enter 2 for  important rules you need to know: ";
    cin >> menuchoice;
	if(menuchoice==2)
	{
		rules();
		
	}
}

void rules()
{
    cout << "Rule 1 - The calculator doesnt know order of operations so you have to enter the numbers in the correct order." << endl;
    cout << "Rule 2 - The calcualtor doesnt understand parenthesis so dont use them." << endl;
}

void operations()
{
    cout << endl << endl << "Here are your options for operations" << endl << endl; // give the user the operation choices
    cout << "Now enter the operation" << endl;
    cout << "Enter 1 for addition" << endl;
    cout << "Enter 2 for subtraction" << endl;
    cout << "Enter 3 for multiplication" << endl;
    cout << "Enter 4 for division " << endl;
    cout << endl << endl;
}

};



int main()
{

    do{ // begining of do while loop to restart the program

    setup callfunctions;

    callfunctions.menu();

    switch(menuchoice)
    {
    case 1:

    int total = 0;

    cout << "How many numbers are in the math problem: "; // asks the user how many numbers are in their math problem
    cin >> howmanynum;
    howmany = howmany + howmanynum;

    cout << endl << "Enter the first number: ";
    cin >> num;
    total = total + num; // adds the first number to the total, otherwise the answer would be incorect

    for(int i = 1; i < howmanynum; i++){ //loop
	callfunctions.operations();
    cout << endl << "Enter the number for the operation: "; // gets the operation from the user
    cin >> operation;
    cout << endl;

    cout << "Enter the next number: "; // gets the number from the user
    cin >> num;
    cout << endl;

    switch(operation){ // does all the math stuff
        case 1:
        total = total + num;
        break;

        case 2:
        total = total - num;
        break;

        case 3:
        total = total * num;
        break;

        case 4:
        total = total / num;
        break;

        default:
        cout << "Invalid input" << endl; 
		callfunctions.rules();
		break;// tells the user if he/she entered an invalid operation number
        }
    }
    cout << endl << "The answer is " << total << endl; // outputs the answer

    //break;

    //case 2:
    
    //break;
    }

    cout << "Enter 1 to restart or 2 to quit: "; // asks the user to restart or exit
    cin >> restart;
    }while(restart == 1); // ending of do while loop to restart program
    cin.ignore();
    cout<<"PRESS ENTER KEY TO EXIT..."<<endl;
    cin.get(); // pauses the program.Dont use system("pause")!!
    return 0; // termanates the program
}
Last edited on
Topic archived. No new replies allowed.