WinFuture-Forum.de: Hilfe Bei Array In #c - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Hilfe Bei Array In #c doppelte eingabe erkennen


#1 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 04. August 2006 - 22:37

Seas Leute!
Ich hab n kleines Problem, ich will bzw. hab schon ein kleines Lotto Programm geschrieben. Nur würde ich gerne mein Programm sofern optimieren das wenn der Benutzer seinen Tipp eingibt, dieser nur 1x eingegeben werden darf. Bei meinem Teil Programm (Pruefer) funktioniert das leider nicht so ganz.
Wenn der Benutzer z.B. bei Tipp 1 die Zahl 5 eingibt und bei Tipp 2 auch die 5, muss er diese nochmals eingeben. Soweit funktioniert es. Gibt der Benutzer aber Tipp 2 die Zahl z.B. 6 ein und dann in Tipp 3 wieder die 5 kommt keine Fehlermeldung. Nun meine Frage ob mir jemand helfen könnte dieses Problem zu lösen. Ich hab schon ewig bei Google und diversen Foren gesucht aber nix gefunden.
Nur nochmal zusammenfassend: Das Lottoprogramm ist funktionsfähig, nur der Prüfer ist nicht ideal.
Anbei n kleiner Codeschnipsel, sorry das es unübersichtlich ist..

Zitat

#include <stdio.h>
#include <conio.h>

int eingabe[6]={0}, eingabe2[6]={0},eingabe3, i=0,j=0;

int main(void)
{
for(i=0; i<6; i++)
{
printf("\n\rBitte geben Sie Ihren %i Tipp ein! ", i+1);

scanf("%i", &eingabe3);
if(eingabe3<=0 || eingabe3>49)
{
printf("Fehler: Eingabe zu Groß oder zu klein!");
i--;
}
else
{

if(eingabe[i]==eingabe[i-1])
{
printf("Fehler: Doppelte Zahleneingabe!");
i--;
}
else
{
printf("\nTipp %i %i", i+1,eingabe[i]);
}
}
}

getchar();
getchar();

return 0;
}

Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 04. August 2006 - 22:54

Das ist übrigens C und nicht C# :P

http://www.roboterwe...sages/4079.html
0

#3 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 04. August 2006 - 23:26

Cool danke für deine Antwort!
Hab mein Code nun an dein Link angepasst und es funktioniert.

Zitat

#include <stdio.h>
#include <conio.h>

int main(void)
{
int Eingabe[6];
int i=0, j=0, doppelt;

for(i=0;i<6;i++)
{
do
{
printf("Tipp %i: ", i+1);
scanf("%i", &Eingabe[i]);
doppelt=0;
for(j=0;j<i;++j)
{
if(Eingabe[j]==Eingabe[i])
{
doppelt=1;
}
}
}while(doppelt!=0);
}

getchar();

return 0;
}


Danke für die Hilfe :P
Eingefügtes Bild
0

#4 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 05. August 2006 - 00:38

Trotzdem wäre es besser, als boolsche Variable genutze Integers explizit als BOOL zu deklarieren und auch die anderen Präprozessor-Definitionen TRUE und FALSE zu verwenden.

Auch wäre eventuell die Verwendung einer Hashtabelle bei größeren Eingabemengen zu empfehlenswert, da dort der Aufwand für einen Existenzcheck konstant ist (während das Durchsuchen eines Feldes linear dauert).
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#5 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 05. August 2006 - 17:07

Beitrag anzeigenZitat (Rika: 05.08.2006, 01:38)

Trotzdem wäre es besser, als boolsche Variable genutze Integers explizit als BOOL zu deklarieren und auch die anderen Präprozessor-Definitionen TRUE und FALSE zu verwenden.


Bool wollte ich auch verwenden aber leider geht dieser Datentyp bei C nicht. Zumindest im Borland Builder 5 nicht. Es sei den man muss expliziet etwas bestimmtes #include(n).
Eingefügtes Bild
0

#6 Mitglied ist offline   2cool 

geschrieben 05. August 2006 - 17:59

Geht das nicht?


#define FALSE 0
#define TRUE 1


Oder so:



#define TRUE (1==1)
#define FALSE (!TRUE)

Dieser Beitrag wurde von 2cool bearbeitet: 05. August 2006 - 18:01

greetz, 2cool

web: cmd-script
mail: [email protected]
0

#7 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 05. August 2006 - 22:47

Und noch "#define BOOL int".
Wie bereits erwähnt, in vielen C-Runtimes ist das standardmäßig drin.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0