wieso stürzt mein programm ab?

...komplette Frage anzeigen

2 Antworten

lässt es sich überhaupt compilieren? denn: deklariert ist „salutation“ aber verwendet wird „anrede“...

ah! jetzt seh ich's: du verwendest die uninitialisierte „salutation“ in dem printf ganz am Ende... es compiliert aber, weil du ganz oben auch anrede deklarierst... allerdings sollte man anrede als „char*“ deklarieren... LOL

Probier es mal so:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int age;
  char gender, degree;
  char name [128];
  char* salutation = NULL;

  printf("Name: "); fgets(name, 128, stdin);
  printf("Alter: "); scanf("%d", &age);
  printf("Geschlecht (m/f): "); scanf("\n%c", &gender);
  printf("Doktorengrad j/n: "); scanf("\n%c", &degree);

  if(age<16) salutation = "";
    else if(gender == 'f') salutation = (degree == 'j') ? "Frau Dr. " : "Frau ";
    else if(gender == 'm') salutation = (degree == 'j') ? "Herr Dr. " : "Herr ";
    else {
         printf("Falsche Eingabe.");
         return 1;
         }
  printf("Hallo %s%s", salutation, name);
  return 0;
}


Was möchtest Du wissen?