Programmierquiz



  • Ganz im Zeichen des Palindroms

    Wo liegt hier der Fehler

    #include <stdio.h>
    #include <conio.h>
    
    const unsigned char EscapeCode = 27;
    const unsigned char ReturnCode = 13;
    const unsigned int MaxStrLen = 200;
    const unsigned int MaxStrLen_1 = MaxStrLen+1;
    typedef char TEditStr[MaxStrLen_1];
    TEditStr InputStr = "", Buffer1, Buffer2;
    
    void Stop()
    {
    	printf("\n Beenden: Escape-Taste druecken oder auf den x-Button klicken.");
    	do {} while (getch()!=EscapeCode);
    }
    
    int main()
    {
    	unsigned int StrLen;
    	unsigned int i;
    	bool String_ist_Palindrom = true;
    
    	printf("\n Bitte den zu testenden String eingeben.\n > ");
    	scanf("%s", InputStr);
    
    	i=0; while (Buffer1[i] != 0) i++; StrLen = i;
    
    	for (i=0; i < StrLen; i++)
    		Buffer2[i] = Buffer1[StrLen-1-i]; // Reihenfolge der Zeichen umkehren <-- genial was ;-d
    
    	Buffer2[StrLen] = Buffer1[StrLen];
    
    	if (InputStr[0] != 0)
    	{
    		for (i=0; i <= StrLen/2; i++) 
    		{
    			if (Buffer1[i] != Buffer2[i])
    			{
    				String_ist_Palindrom = false;
    				break;
    			}
    
    		}
    		if (String_ist_Palindrom)
    			printf("\n Der String ist ein Palindrom.");
    		else
    			printf("\n Der String ist kein Palindrom.");
    		printf("\n\n Buffer1: %s", &Buffer1[0]);
    		printf("\n Buffer2: %s\n", &Buffer2[0]);
    	}
    	else
    		printf("\n Es hab nichts zu testen.");
    
    	Stop();
    	return 0;
    }
    


  • XFlorian schrieb:

    Wo liegt hier der Fehler

    Das Fehler liegt darin, dass du in einem char-Array, in den du nie etwas reingeschrieben hast, nach einer Stringendemarkierung suchst. Kennst du eigentlich strlen?

    XFlorian schrieb:

    // Reihenfolge der Zeichen umkehren <-- genial was ;-d

    Das ist hoffentlich nicht dein Ernst.



  • Hmm dann probier doch mal es dann so wie du meinst zu kompilieren und vor allem überprüf mal obs dann auch wie geünscht funktioniert.



  • Sag mal: Was wird das hier eigentlich?



  • soll nur ein einfaches Quiz sein



  • XFlorian schrieb:

    soll nur ein einfaches Quiz sein

    Wage ich zu bezweifeln. Du versuchst nur geschickt zu verbergen, dass wir hier ein fehlerhaftes Programm, dass du für Schule/Uni/Wasauchimmer bis morgen fertig haben musst, für dich korrigieren sollen. 😉



  • XFlorian schrieb:

    Hmm dann probier doch mal es dann so wie du meinst zu kompilieren und vor allem überprüf mal obs dann auch wie geünscht funktioniert.

    Hab ich. Klappt hervorragend 😃

    Sind auch nur 11 Zeilen :p


Anmelden zum Antworten