Ich habe ein ganz dummes Problem, welches das unten stehende "Programm" verdeutlichen soll. Bei meine Compiler (Dev-Cpp 4.9.9.2) passiert folgendes:

Das Programm läuft. Wenn ich die eins wähle wird der Zweig für die eins und der else Zweig ausgeführt (falsch), bei einer zwei nur der Zweig für die zwei (richtig).

Warum geht das nicht?

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int menue();
void wahl(int *);

int menue()
{
    int a;
    cout << "Wahl: ";    
    cin >> a;
    return a;
}

void wahl(int *a)
{
     if(*a==1){
     cout << "eins: " << *a << endl;}
     if(*a==2){
     cout << "zwei: " << *a << endl;}
     else{
     cout << "was anderes " << *a;}
}

int main(int argc, char *argv[])
{
    int z;
    z=menue();
    wahl(&z);
    system("PAUSE");
    return EXIT_SUCCESS;
}