Übergabe von Strings in C nicht C++

scream4040

Grünschnabel
Hallo zusammen ich habe ein Problem

ich habe folgernde aufgabe:

ich soll ein Tarifsystem programmieren das eine auswahl hat einen Wartung und jeweils die Tarifzonen wie ihr auf der kleinen aufgaben beschreibung sehen könnt.

Hallo und herzlich Wilkommen in unserem Tarifsystem
Bitte waehlen sie einen Tarif aus:



+----------+-----------+------+---+
|Tarifzone |Erwachsene |Kinder| W |
+----------+-----------+------+ : |
|1 K | 1,00 | 0,50 | W |
|2 A | 2,20 | 1,10 | A |
|3 B | 3,40 | 1,70 | R |
|4 C | 4,00 | 2,00 | T |
|5 D | 5,40 | 2,70 | U |
|6 E | 7,00 | 3,50 | N |
|7 F | 8,60 | 4,30 | G |
|8 G | 12,00 | 6,00 | |
+----------+-----------+------+---+

Bitte beachten sie Kinder
gelten bis 6 - 12 Jahre!


Bitte bezahlen sie in Münzen:
2,00, 1,00, 0,50, 0,20, 0,10




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


int main(void)
{

char tarif,answer[4],passwort[5];
char zeile9[35];
char zeile10[35];
char zeile11[35];
char zeile12[35];
char zeile13[35];
char zeile14[35];
char zeile15[35];
char zeile16[35];

int c,kinder[1];
float betrag;
FILE *tm;
FILE *tma;
FILE *wm;

//Einbinden der FILE
tma = fopen( "/tm/tma.txt", "w" );
tm = fopen("/tm/tm.txt","r");

while ((c = fgetc(tm)) != EOF)
{
printf("%c",c);
}
fclose(tm);

//Herzstück des Programms
printf("\nBitte waehlen sie einen Tarif \nin dem Sie einen Buchstaben eintippen: \n");
scanf("%c",&tarif);






if(tarif == 'k'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
gets(answer);
if (answer == "ja"){
betrag=0.5;
printf("Sie haben den tarif %s ausgewaehlt las kind\n",tarif);
}
else{
betrag=1.00;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);

}
printf("Ihr Betrag wurde ausgezahlt.\n");

if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);

}



else if(tarif == 'a'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=1.10;
printf("Sie haben den tarif %s ausgewaehlt las kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}
else{
betrag=2.20;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'b'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=1.70f;
printf("Sie haben den tari %s ausgewaehlt las kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}
else{
betrag=3.40f;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'c'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=2.00;
printf("Sie haben den tari %s ausgewaehlt las kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);
}}
else{
betrag=4.00;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'd'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=2.70f;
printf("Sie haben den tari %s ausgewaehlt las kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}
else{
betrag=5.40f;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'e'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=3.50f;
printf("Sie haben den tari %s ausgewaehlt las kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}
else{
betrag=7.00f;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'f'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=4.30f;
printf("Sie haben den tari %s ausgewaehlt als kind\n",tarif);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}

else{
betrag=8.60f,
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}


else if(tarif == 'g'){
printf("Tarif Kind?");
printf("Tippe bitte Ja oder Nein ein: \n");
scanf("%s",&answer);
if (answer == "ja"){
betrag=6.00f;
printf("Sie haben den tari %s ausgewaehlt als kind\n",tarif);}
else{
betrag=12.00f;
printf("Sie haben den Tarif %s ausgewaehlt\n",tarif);
printf("Sie muessen folgen Betrag bezahlen\n %f",betrag);
if( tma != NULL ){
fprintf(tma,"Tarif %s Betrag %f\n",tarif,betrag);}}}

else if(tarif == 'w'){ erneut:;
printf("Bitte tippen sie das Passwort ein");
scanf("%s",&passwort);

if(passwort == "tarif"){
tm = fopen("/tm/tm.txt","r,w");

while ((c = fgetc(tm)) != EOF)
{
printf("%c",c);
}

fputs(zeile9, tm);
fputs(zeile10, tm);
fputs(zeile11, tm);
fputs(zeile12, tm);
fputs(zeile13, tm);
fputs(zeile14, tm);
fputs(zeile15, tm);
fputs(zeile16, tm);

fclose(tm);
}
else{printf("Es tut mir leid sie haben ein falsches Passwort eingegeben ! \nNochmal versuchen ?\n");
goto erneut;
}


}




//printf("soll die Karte jetzt gedruckt werden");
//scanf("%s",answer);

system("PAUSE");


}}

so was daran nicht funktioniert ist dass wenn der buchstabe eingegeben wird, nicht in die if-Anweisung springt sondern das ganze programm einfach schließt.
Das Problem habe ich auch beim Passowort der erkennt das einfach nicht was mache ich falsch.
Ein weiteres Problem sit wie kann ich bei dem Tarifsystem das ganze nur auf die Euromünzen als bezahl eigenschaft beschränken. dasheisst wenn auf dem Bildschirm 3 eingegebn wird muss er sagen nein diese münze existiert nicht und kann nicht bezahlt werden

Danke für hilfe
 
Zuletzt bearbeitet:
Hi.

Man kann C-Strings nicht mit dem == Operator vergleichen. Nutze die strcmp Funktion.

Gruß

PS: Und füge deinen Code in Code-Tags ein! So ist das fast unlesbar.
 
Zurück