Problem bei Programm....



  • Hey Leute,

    hab da ein Problem bei meinem Programm, ich hoffe irgendjemand kann mir damit weiterhelfen, da ich vom programmieren langsam genug hab x)

    also ich soll folgendes programm schreiben:

    Erstellen Sie mit dem gcc-Compiler eine Konsolenanwendung mit folgenden Eigenschaften:

    -die anwendung soll menügesteuert sein

    -das programm soll nach der eingabe eines textes die folgende ausgabe liefern:
    -falls der eingegebene text mindestens fünfmal den buchstaben a enthält,
    wird die anzahl der in diesem text enthaltenen worte angezeigt
    -falls der eingegebene text nicht mindestens fünfmal den buchstaben a
    enthält soll eine entsprechende meldung ausgegeben werden

    -nach der anzeige der ergebnisse soll dem anwender die möglichkeit gegeben werden, entweder eine analyse zu starten oder das programm zu verlassen

    -ebenfalls soll das programm kommentiert werden sowie sehr benutzerfreundlich sein

    so und nun mal mein programm wie weit ich gekommen bin:

    #include<stdio.h>
    int anzahlwoerter(char *argument)
    {
    int i=0;
    int zaehlerwoerter=0;
    while(argument[i] != '\0')
    {
    if(argument [i] == ' ')
    {
    zaehlerwoerter ++;
    }
    i++;
    }
    return zaehlerwoerter;
    }

    int anzahldera(char *argument)
    {
    int i=0;
    int zaehlera=0;
    while(argument[i] != '\0')
    {
    if(argument[i] == 'a')
    {
    zaehlera ++;
    }
    i++;
    }
    return zaehlera;
    }

    int main(void)
    {
    int menuepunkt;
    char zeichenkette[80];
    do
    {
    printf("\n");

    printf("1. Textanalyse\n");
    printf("2. Beenden\n\n");
    printf(" Bitte gewünschte Funktion auswählen\n");
    // scanf ("%i",&menuepunkt);
    menuepunkt=1;
    if(menuepunkt==1)
    {
    printf("Bitte geben Sie den Text ein: ");

    //scanf("%s", zeichenkette);
    gets(zeichenkette);

    printf("Eingabe ist: %s /n",zeichenkette);

    if(anzahldera(zeichenkette)< 5)
    {
    printf("Ihre Eingabe enthält weniger als 5 mal a");
    }
    else
    {
    printf("Ihre Eingabe enthaelt %i Woerter",anzahlwoerter(zeichenkette));
    }
    }
    }while( menuepunkt!=2);

    return 0;
    }

    wäre echt froh wenn mir jmd helfen könnte.... Gruß



  • Und wo genau ist jetzt dein Problem?
    Auf den ersten Blick sehe ich nur einen kritischen Punkt mit dem gets() - dort hast du keinerlei Kontrolle darüber ob die Eingabe in den verfügbaren Speicher reinpasst.

    PS: sfds



  • mein problem ist folgendes:

    ich hab keinen blassen schimmer wie ich dieses programm fertig kriege....



  • Was fehlt dir denn noch? Abgesehen vom letzten Punkt (wobei ich auch nicht sicher bin, wie sich "sehr benutzerfreundlich" bei einem Konsolenprogramm bemerkbar machen soll 🕶) ist doch alles da, was in der Aufgabe gefordert wurde.



  • Sry aber ich blicks absolut gar nicht,

    wäre bereit jmd 10 euro zu geben falls er mir dieses Programm laut den obigen bedingungen fertig schreibt, inklusive einigen kommentaren zwischen den zeilen, ist ja scheinbar nicht mehr viel.

    Meldet euch per pn, dann können wir das klären.

    Gruß



  • Racoon schrieb:

    #include<stdio.h>
    int anzahlwoerter(char *argument)
    {
    	int i=0;
    	int zaehlerwoerter=1;
    	while(argument[i] != '\0')
    	{
    	if(argument [i] == ' ')
    	{
    	zaehlerwoerter ++; 	
    	}
    		i++;	
    	}
    	return zaehlerwoerter;
    }
    
    int anzahldera(char *argument)
    {
    	int i=0;
    	int zaehlera=0;
    	while(argument[i] != '\0')
    	{
    	if(argument[i] == 'a')
    	{
    	zaehlera ++; 	
    	}
    		i++;	
    	}
    	return zaehlera;
    }
    
    int main(void)
    {
    	int menuepunkt;
    	char zeichenkette[80];
    	do
    	{
    	printf("\n");
    
    		printf("1. Textanalyse\n");
    	printf("2. Beenden\n\n");
    	printf(" Bitte gewünschte Funktion auswählen\n");
     	scanf ("%i",&menuepunkt);
            if (menuepunkt == 2) // lol
              break;
            
    	else
    	{
               while (getchar() != '\n');
    		printf("Bitte geben Sie den Text ein: ");
    
    		//scanf("%s", zeichenkette);
    		gets(zeichenkette);
    		
    		printf("Eingabe ist: %s /n",zeichenkette);
    
    		
    	if(anzahldera(zeichenkette)< 5)
    	{
    		printf("Ihre Eingabe enthält weniger als 5 mal a");	
    		}
    		else
    		{
    			printf("Ihre Eingabe enthaelt %i Woerter",anzahlwoerter(zeichenkette));
    		}
    	}
    	}while( menuepunkt!=2);	
    	
    	return 0;
    }
    

    Krieg ich jetzt 10€? 🙄



  • Racoon schrieb:

    Sry aber ich blicks absolut gar nicht,

    wäre bereit jmd 10 euro zu geben falls er mir dieses Programm laut den obigen bedingungen fertig schreibt, inklusive einigen kommentaren zwischen den zeilen, ist ja scheinbar nicht mehr viel.

    Meldet euch per pn, dann können wir das klären.

    Was machst du dann bei der nächsten Aufgabe? Wieder blechen? Das wird auf Dauer ganz schön teuer. 😉 Und bei der Prüfung? Spätestens da bist du dann aufgeschmissen. Meinst du nicht, ein wenig lernen könnte dir ne Menge Kohle sparen und eine bessere Note bescheren? Nur so ne Idee...



  • Für 10€ kann ich - wenn ich Glück habe - essen gehen. Davon habe ich dann was! 😮 Dafür setze ich mich aber nicht hin, etwas zu tun was du lernen sollst! Du bist die 10€ los und hast immer noch keinen Schimmer! 😃



  • Ich habe das Problem doch schon gelöst? Er hat vermutlich nicht verstanden, das scanf() ein '\n' im Puffer lässt, das dann von gets() eingelesen wird. Zudem muss man beim Wörter Zählen natürlich mit 1 einfangen. Das wars.



  • cooky451 stehen die 10€ zu? Aber bitte nicht besaufen, dann kann er keine nützlichen Tipps mehr geben! 😮



  • Was soll er denn für 10€ zu sich nehmen (besaufen), dass er nicht mehr programmieren kann?



  • DirkB schrieb:

    Was soll er denn für 10€ zu sich nehmen (besaufen), dass er nicht mehr programmieren kann?

    Bei einem Discounter kriegt er für 10€ eine Flasche hochprozentigen Sprit oder einen halben Kasten Bier. Sollte für einige Stunden 'nicht mehr programmieren können' schon ausreichen! 🕶 Aber es gibt ja auch die Experten, die zum Lösen kniffliger Dinge einen Pegel brauchen! 😮



  • Ich werde dieses Zeugs sicherlich nicht mehr lernen, vor alleim weil ich ab nun kein info mehr hab bzw. darin auch keine klausur schreib. War net gemeint von den vorrednern, aber da hab ich für mein studienfach nützlicheres zu lernen...



  • Racoon schrieb:

    Ich werde dieses Zeugs sicherlich nicht mehr lernen, vor alleim weil ich ab nun kein info mehr hab bzw. darin auch keine klausur schreib. War net gemeint von den vorrednern, aber da hab ich für mein studienfach nützlicheres zu lernen...

    Ist in Ordnung. Nur dann bitte nicht eines Tages für ein IT-Projekt die Vorgaben machen! 😃



  • leider geht das programm bisher nur für kleine a's, nicht für große A's xD
    ich krieg auch iwie keine und oder verknüpfung von den a A 's....


  • Mod

    Racoon schrieb:

    leider geht das programm bisher nur für kleine a's, nicht für große A's xD
    ich krieg auch iwie keine und oder verknüpfung von den a A 's....

    Hast du cookies Komplettlösung genommen? Oder ein eigenes Programm? Wenn ja, welches? Und was ist überhaupt deine Frage? Dein Beitrag ist ziemlich unleserlich und deine Probleme sind unklar. Bitte genauere Fragen stellen und Texte deutlich ( ⚠ und deutsch oder englisch) formulieren!



  • Sry, aber ich bin im moment ein wenig gereizt... ich hab die lösung von cookie genommen, und habe versucht, das a mit einer UND-ODER-Verknüpfung zu verbessern. Der Grund: ich möchte dass das Programm ebenso große A's zählt als auch kleine a's. Ich hoffe mein Anliegen ist nun ein wenig mehr verständlicher.



  • ODER wäre schon richtig, du mußt nur wissen, wie es funktioniert 😉

    if(argument[i] == 'a' || argument[i] == 'A')
      ...
    
    //alternativ:
    if(tolower(argument[i]) == 'a')
      ...
    


  • SeppJ schrieb:

    Hast du cookies Komplettlösung genommen?

    LOL meine "Komplettlösung" ändert 2 Zeilen oder so in seinem Code.
    Was ist jetzt eigentlich mit einen 10€? 🤡



  • xD was ist mit meinem perfekten Programm mit beschreibungen und kommentaren?


Anmelden zum Antworten