probleme mit mastermind-quelltext



  • Guten abend,

    ich habe eine problem mit einem meiner quelltexte (wer hat das nicht?) und erbitte jetzt eure hilfe. meine compiler (ich habe aus sicherheitsgründen mehrere) machen mucken bei dem folgenden code:

    int count = 0;
      int correct_number[4] = {0, 0, 0, 0};
      int trials = 10;
      int error_proof = 0;
      int user[4] = {0, 0, 0, 0};
      int right_place = 0;
      int wrong_place = 0;
      int wrong = 0;
    
    [...]
    
      error_proof = proof_scan(correct_number[0], correct_number[1], correct_number[2], correct_number[3], user[0], user[1], user[2], user[3], &right_place, &wrong_place, &wrong);
    
    [...]
    
    FUNKTION:
    
    int proof_scan(int ps_correct[0], int ps_correct[1], int ps_correct[2], int ps_correct[3], int ps_user[0], int ps_user[1], int ps_user[2], int ps_user[3], int *ps_right_place, int *ps_wrong_place, int *ps_wrong)
    {
      int ps_count = 0;
      int ps_wrong_place_tester = 0;
    
      for(ps_count = 0; ps_count < 4; ps_count++)
        {
          if(ps_correct[ps_count] == ps_user[ps_count])
    	{
    	  *ps_right_place += 1;
    	  ps_user[ps_count] = 0;
    	}
        }
    
      if(*ps_right_place == 4)
        {
          printf("CONGRATULATIONS, YOU'VE WON\n");
          return(10);
        }
    
      for(ps_count = 0, ps_wrong_place_tester = ps_correct[ps_count]; ps_count < 4 ; ps_count++)
        {
          if(ps_wrong_place_tester == ps_user[0])
    	{
    	  *ps_wrong_place += 1;
    	  ps_user[0] = 0;
    	}
          if(ps_wrong_place_tester == ps_user[1])
    	{
    	  *ps_wrong_place += 1;
    	  ps_user[1] = 0;
    	}
          if(ps_wrong_place_tester == ps_user[2])
    	{
    	  *ps_wrong_place += 1;
    	  ps_user[2] = 0;
    	}
          if(ps_wrong_place_tester == ps_user[3])
    	{
    	  *ps_wrong_place += 1;
    	  ps_user[3] = 0;
    	}
        }
    
      *ps_wrong = 4 - (*ps_right_place + *ps_wrong_place);
    
      return(0);
    }
    

    eigentlich war das ganze als mastermindspiel vorgesehen.

    mein compiler schreibt:

    ERROR: NEED EXPLICIT CAST FOR FUNCTION PARAMETER 1 TO GET
    FROM: INT
    TO: INT*

    ERROR: ps_correct IS ALREADY DEFINED

    bezieht sich beides auf die funktion.

    ich hoffe, ihr könnt mir helfen.

    MfG

    ItsNotYou



  • Hab mir deine Funktion nicht angeschaut, aber die Parameter sind ungeschickt.

    error_proof = proof_scan(correct_number[0], correct_number[1], correct_number[2], correct_number[3], user[0], user[1], user[2], user[3], &right_place, &wrong_place, &wrong);
    

    Du übergibst hier alle Elemente zweier Arrays. Übergib doch einfach nur die Adresse der Arrays, dann kannst du es so aufrufen:

    error_proof = proof_scan(correct_number, user, &right_place, &wrong_place, &wrong);
    

    Der Fehler kommt, weil du einen int übergibst, die Funktion jedoch einen int* erwartet (correct_number[0] als Übergabeparameter is vom Typ int)


Anmelden zum Antworten