hilfe



  • Muss das Programm erwweitern

    #include <stdio.h>
    #include <stdlib.h>
    
    struct
    {
        char Vorname[256];
        char Nachname[256];
        int Umsaetze;
    } Verkaeufer[10];
    
    int main(int argc, char *argv[])
    {
        int AnzahlEingaben = 0, i;
        while(AnzahlEingaben < 10)
        {
            printf("Bitte geben sie den Vornamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Vorname);
            printf("Bitte geben sie den Nachnamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Nachname);
            printf("Bitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%i", &Verkaeufer[AnzahlEingaben].Umsaetze);
            AnzahlEingaben++;
            if(AnzahlEingaben != 10)
            {
                printf("Wollen sie einen weiteren Verkaeufer eingeben? (j/n)\n");
                char c;
                scanf("%s", &c);
                if(c == 'n')
                {
                    break;
                }
            }
        }
        printf("Sie haben folgende Verkaeufer eingegebn:\n");
        for(i = 0; i < AnzahlEingaben; i++)
        {
            printf("%s %s Umsaetze: %i\n", Verkaeufer[i].Vorname, Verkaeufer[i].Nachname, Verkaeufer[i].Umsaetze);
        }
        system("PAUSE");
        return 0
    }
    

    Die Erweiterung: Entwerfen sie mit Hilfe der Ascii Zeichen und Funktionen ein Programm zur Erzeugung einer Tabelle (umrahmt und in Zellen aufgeteilt), in die diese Daten eingeschrieben werden. Die Tabelle soll Tabellenköpfe haben und soll an die Anzahl der Verkäufer angepasst werden.

    Kann mir da einer helfen wie ich da anfangen soll, achso kann mir einer noch sagen wieso ich nicht j/n eingeben kann er springt einfach weiter.
    DANKE



  • Hausaufgaben möchte ich für dich nicht machen, vorallem wenn sie so Grundlegendes
    vermitteln sollen. Zu deinem j/n-Problem versuche folgendes:

    scanf("%c", &c);
    while(getchar()!='\n');
    


  • system("PAUSE");
    

    sollte besser durch etwas wie

    getch();
    

    ersetzt werden.
    Ansonsten kann ich nur empfehlen, sich das bei so "grafischen" Sachen sich das einfach mal hinzuskizzieren auf ein Blatt Papier, und dann überlegen, was genau in jeder Zeile ausgegeben werden muss. Dann kommt auch schnell auf ein System.



  • Sind doch keine Hausaufgaben ...... aber erstmal danke für das j/n problem



  • wie funktioniert es mit dem getchar



  • ja das

    system("PAUSE");
    

    lass ich sowieso weg



  • wenn du das getch(); meinst:
    Es wartet einfach, dass ein character eingegeben wird. Also kannst du damit für Konsolenanwendungen unter Win auch eine Pause erzeugen, jedoch ohne Windows-Funktionen selbst zu bemühen, da die Konsole solange offen bleibt, bis eine Eingabe erfolgt.



  • funktioniert auch nicht mit dem

    scanf("%c", &c);
    while(getchar()!='\n');
    


  • war blödsinn



  • ne geht auch nicht



  • codekasper, bitte verbreite keinen falschen code.

    ein j/n fragt man so ab:

    int c;
    do {
        puts("was machen");
        printf("nochmal? [j/n] ");
        c = getchar();
    } while (c != 'n' && c != 'N');
    

    den eingabepuffer loescht man nicht mit einem obskuren fflush(stdin); <- falsch sondern mit einem

    int c; while ((c = getchar()) != EOF && c != '\n');
    

    dies sollte aber in den seltensten faellen noetig sein.



  • Hat sich erledigt ... es doch auch so wie ich es geschrieben habe



  • Also mit der Programm erweiterung bin ich jetzt schon so weit.....
    jetzt muss ich nur noch wissen wie ich am besten die Verkäufer und namen und quartals Zahlen in die Spalten kriege.

    #include <stdio.h>
    #include <stdlib.h>
    
    struct
    {
        char Vorname[256];
        char Nachname[256];
        char Quartal1[256];
    	char Quartal2[256];
    	char Quartal3[256];
    	char Quartal4[256];
    
    } Verkaeufer[10];
    
    int main(int argc, char *argv[])
    {
        int AnzahlEingaben = 0, i;
    	int			ObenLinks    = 218,
    				UntenLinks   = 192,
    				UntenRechts  = 217,
    				ObenRechts   = 191,
    			    ObenUnten    = 196,
    				LinksRechts  = 179,
    			    ObenSpalte   = 194,
    				LinksZeile   = 195,
    				MitteSpZe    = 197,
    				RechtsZeile  = 180,
    				UntenSpalte  = 193,
    				a,b,c,d,e,f,g,h,o,j,k;
    
        while(AnzahlEingaben < 10)
        {
            printf("Bitte geben sie den Vornamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Vorname);
            printf("Bitte geben sie den Nachnamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Nachname);
            printf("Bitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal1);
            printf("Bitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal2);
            printf("Bitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal3);
            printf("Bitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal4);
    
    		AnzahlEingaben++;
            if(AnzahlEingaben != 10)
            {
                printf("Wollen sie einen weiteren Verkaeufer eingeben? (j/n)\n");
                char c;
                do
    			{
    				scanf("%c", &c);
    			}while(getchar()!='\n');
                {
                    break;
                }
            }
        }
    
        printf("Sie haben folgende Verkaeufer eingegebn:\n");
    
    		printf("%c",ObenLinks );
    
    		for(d=1;d<=6;d++)
    		{
    			for(e=1;e<=11;e++)
    			{
    				printf("%c",ObenUnten);
    			}
    
    			if(d<6)
    				printf("%c",ObenSpalte);
    
    			else
    			{
    				printf("%c\n",ObenRechts);
    			}
    		}
    
            printf("%c Nachname  %c",LinksRechts,LinksRechts);
    		printf("  Vorname  %c",LinksRechts);
    		printf("  Umsatz   %c",LinksRechts);
    		printf("  Umsatz   %c",LinksRechts);
    		printf("  Umsatz   %c",LinksRechts);
    		printf("  Umsatz   %c\n",LinksRechts);	
    		printf("%c           %c",LinksRechts,LinksRechts);	
    		printf("           %c",LinksRechts);
    		printf(" 1.Quartal %c",LinksRechts);
    		printf(" 2.Quartal %c",LinksRechts);
    		printf(" 3.Quartal %c",LinksRechts);
    		printf(" 4.Quartal %c\n",LinksRechts);
    
    		printf("%c",LinksZeile);
    
             for(d=1;d<=6;d++)
    		{
    			for(e=1;e<=11;e++)
    			{
    				printf("%c",ObenUnten);
    			}
    
    			if(d<6)
    				printf("%c",MitteSpZe);
    
    			else
    			{
    				printf("%c\n",RechtsZeile);
    			}
    		}
    
        for(i = 0; i < AnzahlEingaben; i++)
        {
    
            printf("%s %s  %s %s %s %s \n",Verkaeufer[i].Vorname, Verkaeufer[i].Nachname, Verkaeufer[i].Quartal1, Verkaeufer[i].Quartal2, Verkaeufer[i].Quartal3, Verkaeufer[i].Quartal4);
        }
    
        return 0;
    }
    

    wär für jede hilfe dankbar.



  • Wollte mal auch noch Fragen wie ich die AusgabeVerkäufer auch durchnummerieren kann

    #include <stdio.h>
    #include <stdlib.h>
    
    struct
    {
        char Vorname[256];
        char Nachname[256];
        char Quartal1[256];
    	char Quartal2[256];
    	char Quartal3[256];
    	char Quartal4[256];
    
    } Verkaeufer[10];
    
    int main(int argc, char *argv[])
    {
        int AnzahlEingaben = 0, i;
    
        while(AnzahlEingaben < 10)
        {
    		printf("VERKAEUFER %i	\n", AnzahlEingaben+1);
            printf("\nBitte geben sie den Vornamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Vorname);
            printf("\nBitte geben sie den Nachnamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Nachname);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal1);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal2);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal3);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal4);
    
    		AnzahlEingaben++;
            if(AnzahlEingaben != 10)
            {
                printf("Wollen sie einen weiteren Verkaeufer eingeben? (j/n)\n");
                char c;
                do
    			{
    				scanf("%c", &c);
    			}while(getchar()!='\n');
                {
                    break;
                }
            }
    
        }
    
        printf("Sie haben %i Verkaeufer  \n", AnzahlEingaben);
    
        for(i = 0; i < AnzahlEingaben; i++)
        {
    		printf("VERKAEUFER %s	\n", AnzahlEingaben+1);
    		printf(" Vorname  :%s \n",Verkaeufer[i].Vorname);
    		printf(" Name     :%s \n",Verkaeufer[i].Nachname);
    		printf(" 1.Quartal:%s \n",Verkaeufer[i].Quartal1);
    		printf(" 2.Quartal:%s \n",Verkaeufer[i].Quartal2);
    		printf(" 3.Quartal:%s \n",Verkaeufer[i].Quartal3);
         	printf(" 4.Quartal:%s \n",Verkaeufer[i].Quartal4);
    
        }
    
        return 0;
    }
    


  • Ok die ganzen Probleme haben sich gelöst... jetzt hab ich 2 neue Probleme
    1.

    #include <stdio.h>
    #include <stdlib.h>
    
    struct
    {
        char Vorname[256];
        char Nachname[256];
        char Quartal1[256];
        char Quartal2[256];
        char Quartal3[256];
        char Quartal4[256];
    
    } Verkaeufer[10];
    
    int main(int argc, char *argv[])
    {
        int AnzahlEingaben = 0;
        int         ObenLinks    = 218,
                    UntenLinks   = 192,
                    UntenRechts  = 217,
                    ObenRechts   = 191,
                    ObenUnten    = 196,
                    LinksRechts  = 179,
                    ObenSpalte   = 194,
                    LinksZeile   = 195,
                    MitteSpZe    = 197,
                    RechtsZeile  = 180,
                    UntenSpalte  = 193,
                    d,e,count;
    
        while(AnzahlEingaben < 10)
    		 {
    					printf("\nVERKAEUFER %i	\n", AnzahlEingaben+1);
    					 printf("\nBitte geben sie den Vornamen des Verkaeufers ein: ");
    					 scanf("%s", Verkaeufer[AnzahlEingaben].Vorname);
    					printf("\nBitte geben sie den Nachnamen des Verkaeufers ein: ");
    				scanf("%s", Verkaeufer[AnzahlEingaben].Nachname);
    				printf("\nBitte geben sie die Umsaetze des 1.Quartals ein: ");
    				scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal1);
    				printf("\nBitte geben sie die Umsaetze des 2.Quartals ein: ");
    				scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal2);
    				printf("\nBitte geben sie die Umsaetze des 3.Quartals ein: ");
    				scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal3);
    				printf("\nBitte geben sie die Umsaetze des 4.Quartals ein: ");
    				scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal4);
    
    		AnzahlEingaben++;
            if(AnzahlEingaben != 10)
            {
                printf("Wollen sie einen weiteren Verkaeufer eingeben? (j/n)\n");
                char c;
                scanf("%s", &c);
                if(c == 'n')
                {
                    break;
                }
            } 
    
        }
    
        printf("Sie haben %i Verkaeufer  \n", AnzahlEingaben);
    
            printf("%c",ObenLinks );
    
            for(d=1;d<=6;d++)
            {
                for(e=1;e<=11;e++)
                {
                    printf("%c",ObenUnten);
                }
    
                if(d<6)
                    printf("%c",ObenSpalte);
    
                else
                {
                    printf("%c\n",ObenRechts);
                }
            }
    
            printf("%c Nachname  %c",LinksRechts,LinksRechts);
            printf("  Vorname  %c",LinksRechts);
            printf("  Umsatz   %c",LinksRechts);
            printf("  Umsatz   %c",LinksRechts);
            printf("  Umsatz   %c",LinksRechts);
            printf("  Umsatz   %c\n",LinksRechts);   
            printf("%c           %c",LinksRechts,LinksRechts);   
            printf("           %c",LinksRechts);
            printf(" 1.Quartal %c",LinksRechts);
            printf(" 2.Quartal %c",LinksRechts);
            printf(" 3.Quartal %c",LinksRechts);
            printf(" 4.Quartal %c\n",LinksRechts);
    
            printf("%c",LinksZeile);
    
             for(d=1;d<=6;d++)
            {
                for(e=1;e<=11;e++)
                {
                    printf("%c",ObenUnten);
                }
    
                if(d<6)
                    printf("%c",MitteSpZe);
    
                else
                {
                    printf("%c\n",RechtsZeile);
                }
            }
    
    		 for(AnzahlEingaben=0;AnzahlEingaben<10;AnzahlEingaben++)
    		{
    			printf("%c", LinksRechts);
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Nachname[count]);
    
    			}printf("%c",LinksRechts);
    
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Vorname[count]);
    
    			}printf("%c",LinksRechts);
    
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Quartal1[count]);
    
    			}printf("%c",LinksRechts);
    
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Quartal2[count]);
    
    			}printf("%c",LinksRechts);
    
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Quartal3[count]);
    
    			}printf("%c",LinksRechts);
    
    			for(count=0;count<11;count++)
    			{
    				printf("%c", Verkaeufer[AnzahlEingaben].Quartal4[count]);
    
    			}printf("%c",LinksRechts);
    			 printf("\n");		
    
    			if(AnzahlEingaben<9)
    			{
    				printf("%c",LinksZeile);
    
    			for(d=1;d<=6;d++)
    			{
    				for(e=1;e<=11;e++)
    				{
    					printf("%c",ObenUnten);
    				}
    
    				if(d<6)
    					printf("%c",MitteSpZe);
    
    				else
    				{
    					printf("%c",RechtsZeile);
    				}
    
    			}		
    
    		}	
    
    		else
    		{
    			printf("%c",UntenLinks);					
    
    			for(d=1;d<=6;d++)
    			{
    				for(e=1;e<=11;e++)
    				{
    					printf("%c",ObenUnten);
    				}
    
    				if(d<6)
    					printf("%c",UntenSpalte);
    
    				else
    				{
    					printf("%c\n",UntenRechts);
    				}
    			}
    		}printf("\n");
    
    		}
    
    return 0;
    
    }
    

    wie kann man das machen das wenn man nur ein Verkäufer hat auch nur eine Zeile dargestellt wird??

    #include <stdio.h>
    #include <stdlib.h>
    
    struct
    {
        char Vorname[256];
        char Nachname[256];
        char Quartal1[256];
        char Quartal2[256];
        char Quartal3[256];
        char Quartal4[256];
    
    } Verkaeufer[10];
    
    int main(int argc, char *argv[])
    {
        int AnzahlEingaben = 0, i;
    
        while(AnzahlEingaben < 10)
        {
            printf("VERKAEUFER %i    \n", AnzahlEingaben+1);
            printf("\nBitte geben sie den Vornamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Vorname);
            printf("\nBitte geben sie den Nachnamen des Verkaeufers ein: ");
            scanf("%s", Verkaeufer[AnzahlEingaben].Nachname);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal1);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal2);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal3);
            printf("\nBitte geben sie die Quartals-Umsaetze fuer das Jahr 2001 ein: ");
            scanf("%s", &Verkaeufer[AnzahlEingaben].Quartal4);
    
            AnzahlEingaben++;
            if(AnzahlEingaben != 10)
            {
                printf("Wollen sie einen weiteren Verkaeufer eingeben? (j/n)\n");
                char c;
                do
                {
                    scanf("%c", &c);
                }while(getchar()!='\n');
                {
                    break;
                }
            }
    
        }
    
        printf("Sie haben %i Verkaeufer  \n", AnzahlEingaben);
    
        for(i = 0; i < AnzahlEingaben; i++)
        {
            printf("VERKAEUFER %s    \n", AnzahlEingaben+1);
            printf(" Vorname  :%s \n",Verkaeufer[i].Vorname);
            printf(" Name     :%s \n",Verkaeufer[i].Nachname);
            printf(" 1.Quartal:%s \n",Verkaeufer[i].Quartal1);
            printf(" 2.Quartal:%s \n",Verkaeufer[i].Quartal2);
            printf(" 3.Quartal:%s \n",Verkaeufer[i].Quartal3);
             printf(" 4.Quartal:%s \n",Verkaeufer[i].Quartal4);
    
        }
    
        return 0;
    }
    

    Wie kann ich bei der Ausgabe auch die Zahl der käufer so einstellen das sie von 1-10 zählt.

    Danke schonmal im vorraus.
    Wer echt net wenn mir einer helfen könnte sitze schon die ganze nacht/morgen daran.



  • Achso vielleicht noch eins man soll das erste Programm möglichst kurz schreiben, wenn einer einen Tip hat wie ich es verkürzen könnte wäre ich auch echt dankbar.



  • for(AnzahlEingaben=0;AnzahlEingaben<10;AnzahlEingaben++) 
    {
      ... //Augabe Verkäufer
    }
    

    wie kann man das machen das wenn man nur ein Verkäufer hat auch nur eine Zeile dargestellt wird??

    Indem du 'AnzahlEingaben' nicht als Zähler, sondern als Endekriterium für deine Schleife verwendest.

    Wie kann ich bei der Ausgabe auch die Zahl der käufer so einstellen das sie von 1-10 zählt.

    An welcher Stelle willst du denn Käufer ausgeben? Ich sehe nur Verkäufer in deinem Programm.

    PS:

    for(count=0;count<11;count++)
    {
      printf("%c", Verkaeufer[AnzahlEingaben].Quartal1[count]);
    }
    

    ist einfach nur grausam 👎 🕶



  • Sorry meinte ja wenn man die Verkäufer eingegeben hat und dann will ich bei der ausgabe das die Verküfer mit den daten auch nummeriert sind.



  • Das hab ich doch geschrieben in meinem Programm oder versteh ich da was falsch...

    for(AnzahlEingaben=0;AnzahlEingaben<10;AnzahlEingaben++)
    {
      ... //Augabe Verkäufer
    }
    


  • In 'AnzahlEingaben' steht drin, wieviele Verkäufer du eingegeben hast, richtig? Also mußt du auch von 0 bis zu diesem Wert zählen, wenn du alle eingegebenen Verkäufer ausgeben willst:

    for(int pos=0;pos<AnzahlEingaben;++pos)
    {
      ... //Ausgabe Verkaeufer[pos]
    }
    

    PS: Das zweite Programmstückchen sieht da schon richtiger aus. (und gibt soweit ich das sehe, auch die Verkäufer-Nr mit aus - allerdings solltest du für Ganzzahlen die Kennung %i verwenden: "printf("VERKÄUFER %i:\n",i+1);")


Anmelden zum Antworten