Witam, w poniższym kodzie pojawia się błąd:
[Error] jump to case label [-fpermissive]
[Error] crosses initialization of 'int k'
Błąd jest w 78, 105 oraz 108 linii.
Kod nie jest w pełni skończony, gdyż pojawia mi się ten oto błąd i nie wiem gdzie go popełniłem.
#include <iostream>
#include <math.h>
#include <windows.h>
#include <conio.h>
#include <string>
using namespace std;
void FontColor(); //funkcja ktora wybiera kolor czcionki
class Dane { //klasa dane
protected: //chronione zmienne
string imie;
string nazwisko;
public: //publiczne metody/funkcje
void PodajDane();
void Powitanie();
};
void Dodawanie();
void Odejmowanie();
void Mnozenie();
void Dzielenie();
int main(int argc, char *argv[]) {
Dane * Dane0 = new Dane; //konstruktor
Dane0->PodajDane(); //wczytaj funkcje
Sleep(3000); //spij 3sec
system("cls"); //wyczysc ekran
Dane0->Powitanie(); //wczytaj funkcje
cout << endl;
cout<<"################################################# \n";
cout << endl;
FontColor();
int x = 0;
while(x>3 || x<1) { //instrukcja while
cout<<"Wybierz co chcesz zrobic.. \n";
cout<<"1. Oblicz Delte..\n";
cout<<"2. Wlacz kalkulator\n";
cout<<"3. Czy masz dzis szczescie?\n";
cout<<"Wybieram: ";
cin>>x;
system("cls");
}
switch(x){
case 1: {
float a, b, c, delta, x0, x1, x2; //zmienne dla delty
cout << "Podaj pierwsza liczbe: \n";
cin >> a;
cout << "Podaj druga liczbe: \n";
cin >> b;
cout << "Podaj trzecia liczbe: \n";
cin >> c;
delta = (b*b) - (4 * a*c); //wzor delta
cout << "Delta wynosi: " << delta << endl;
cout << "Pierwiastek z delty wynosi " << sqrt(delta) << endl; //math.h sqrt czyli pierwiastek z delty
if (delta>0) { //instrukcja warunkowa IF
cout << "x1=" << (-b - sqrt(delta)) / 2 * a << endl; //obliczenie x1
cout << "x2=" << (-b + sqrt(delta)) / 2 * a << endl; //obliczenie x2
cout << "Delta ma dwa rozwiazania! \n";
}
else if (delta == 0) {
cout << "x0=" << (-b) / 2 * a << endl; //obliczenie x0
cout << "Delta ma jedno rozwiazanie! \n";
}
else if (delta<0) {
cout << "Delta nie ma rozwiazan! \n";
}
}
break;
case 2:
int k = 0;
while(x>4 || x<1) {
cout<<"Wybierz co chcesz zrobic: \n";
cout<<"1. Dodawanie..\n";
cout<<"2. Odejmowanie..\n";
cout<<"3. Mnozenie..\n";
cout<<"4. Dzielenie..\n";
cout<<"Wybieram: ";
cin>>k;
}
switch(k) {
case 1: {
Dodawanie();
}
break;
case 2: {
}
break;
case 3: {
}
break;
case 4: {
}
break;
}
break;
case 3:
cout<<"tak\n";
break;
default: {
cout << "Brak opcji!\n";
break;
}
}
system("PAUSE"); //pause
return EXIT_SUCCESS; //jezeli wszystko bedzie poprawnie - zakoncz zadanie
}
void FontColor() { //kolor czcionki
HANDLE fontcolor; //uchwyc fontcolor
fontcolor = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(fontcolor, FOREGROUND_GREEN | FOREGROUND_INTENSITY); //intensywny zielony kolor
}
void Dane::PodajDane() { //cala zmienna podaj dane
cout << "Podaj imie: \n";
cin >> imie;
cout << "Podaj nazwisko: \n";
cin >> nazwisko;
}
void Dane::Powitanie() { //cala zmienna powitanie
cout << "Witaj " << imie << " " << nazwisko << endl;
}
void Dodawanie(int z, int v) {
cout<<"Podaj dwie liczby, ktore chcesz dodac: ";
cin>>z;
cin>>v;
int dWynik = z + v;
cout<<z+v<<"="<<dWynik<<endl;
}