Benötige dringend Hilfe bei C-Programm !

bolek44

Grünschnabel
Hallo liebe Community,

ich bin absoluter C-Anfänger und bekomme folgende Fehlermeldung beim Versuch mein Programm zu compilieren:

43:13: error: format '%d' expects argument of type 'int', but argument 2 has type 'int *'

Code:
#include <stdio.h>
#include <stdbool.h>
#include "zufallsgenerator.h"

int main(void)
{
  int auswahl;

  printf("\n\n##### Test der Sicherheit eines Geldautomaten #####\n\n");
  printf("(1)Einfacher Test\n(2)Mehrfacher Test\n(3)Programm beenden\n\n");

  printf("Bitte waehlen Sie zwischen 1, 2, 3: ");
  scanf("%d", &auswahl);

  switch(auswahl)
  {
    case 1:

        initialisiere_zufallszahlengenerator();
        
        int versuche_insgesamt = 0;
        int versuche_pro_pin = 0;
        bool pin_erraten = false;
        int geheimzahl1 = liefere_ganze_zufallszahl(1, 9);
        int geheimzahl2 = liefere_ganze_zufallszahl(1, 9);
        int geheimzahl3 = liefere_ganze_zufallszahl(1, 9);
        int geheimzahl4 = liefere_ganze_zufallszahl(1, 9);

    while (pin_erraten == false)
      {
      versuche_insgesamt++;

        while (pin_erraten == false && versuche_pro_pin < 3)
          {
            versuche_pro_pin++;
            int zufallszahl1 = liefere_ganze_zufallszahl(1, 9);
            int zufallszahl2 = liefere_ganze_zufallszahl(1, 9);
            int zufallszahl3 = liefere_ganze_zufallszahl(1, 9);
            int zufallszahl4 = liefere_ganze_zufallszahl(1, 9);

            if(geheimzahl1 == zufallszahl1 && geheimzahl2 == zufallszahl2 && geheimzahl3 == zufallszahl3 && geheimzahl4 == zufallszahl4)
            pin_erraten = true;
            printf("Es wurden %d Chipkarten eingezogen.", &versuche_insgesamt);
            break;
          }
      }
   // case 2:
   // case 3:
   } 
  return 0;
}

Die Aufgabe ist diese hier:

Der Zugriff auf ein Konto über einen Geldautomaten setzt den Besitz einer Chipkarte und die Kenntnis der zugehörigen 4-stelligen Geheimnummer voraus. Wird dreimal hintereinander eine falsche Nummer eingegeben, wird die Chipkarte vom Geldautomaten eingezogen. Schreiben und dokumentieren Sie ein Programm, mit dem der Sicherheitsmechanismus von Geldautomaten getestet werden kann.

? Es soll folgendes Auswahlmenü zur Verfügung gestellt werden:
Test der Sicherheit eines Geldautomaten
(1) Einfacher Test
(2) Mehrfacher Test
(3) Programm beenden

? Bei Wahl von (1) soll Folgendes geschehen:

• Per Zufallszahlengenerator soll eine Geheimnummer erzeugt werden, die aus vier Ziffern besteht, die alle von 0 verschieden sind.
• Anschließend soll versucht werden, von dem zugehörigen Konto abzuheben. Dazu soll jeweils per Zufallszahlengenerator eine weitere Nummer erzeugt werden, die aus vier von 0 verschiedenen Ziffern besteht, und geprüft werden, ob sie mit der Geheimnummer über einstimmt. Nach drei Fehlversuchen soll der Vorgang abgebrochen werden (weil die Chipkarte eingezogen und das Konto gesperrt wurde!).
• Dieser Vorgang soll (jeweils für ein anderes Konto mit einer neuen Geheimnummer) solange wiederholt werden, bis es zu einer (unberechtigten)
Abhebung kommt, d.h. bis die Geheimnummer durch Zufall erraten wurde.
• Die erfolglosen Vorgänge sollen gezählt und das Ergebnis z.B. in folgender Form auf dem Bildschirm ausgegeben werden:

Es wurden 789 Chipkarten eingezogen.



Ich hab verschiedene Sachen rumprobiert, komme aber nicht vorran.
Ich weiss auch überhaupt nicht, ob der Rest so stimmt.

Ich hoffe ihr könnt mir behilflich sein !

Danke, im Voraus!
 
Hallo,

du übergibst als Parameter einen Zeiger auf "versuche_insgesamt" an printf. Das ist aber falsch - entferne das '&' vor dem Variablennamen.

Gruß
MCoder
 
Zurück