hilfe



  • 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);")



  • ja so sieht es schon besser aus nur wenn ich einen verkäufer eingebe erscheint auch Verkäufer 1 nur wenn ich 2 verkäufer eingebe erscheint der Verkäufer2 2* bei jedem

    for(i = 0; i < AnzahlEingaben; i++)
        {
    		for(int pos=0;pos<AnzahlEingaben;++pos) 
    		{
    			printf("VERKAEUFER %i   \n", AnzahlEingaben); 
    		}
    		printf("\n");
    		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);
    


  • Beschäftige dich doch erstmal mit den Grundlagen der Schleifenprogrammierung - so wie du verschachtelst, blickst du irgendwann selbst nicht mehr durch. Zur Ausgabe des gesamten Arrays benötigst du EINE Schleife, die von 0 bis AnzahlEingaben durchläuft:

    for(i = 0; i < AnzahlEingaben; i++)
    {
      printf("VERKAEUFER %i   \n\n", AnzahlEingaben);
      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);
    }
    


  • Das ist genau das problem wie ich es beschrieben hab geb ich 2 Verkäufer ein kommt bei der Ausgabe die Anzahl dahinter soviele verkäufer ich eingegeben habe.



  • Sorry, mein Fehler - richtiger wäre printf("VERKAEUFER %i\n\n",i+1); anstelle der ersten Ausgabe (i ist die Nummer des gerade betrachteten Datensatzes, AnzahlEingaben die Gesamtanzahl).



  • Super Danke genau so hab ich mir das vorgestellt.

    Weißt du vielleicht auch noch wie ich es mit dem anderen Programm schreiben kann damit ich genau so viele Zeilen hab wie Verkäufer.



  • Ja, genauso - nur daß du halt die Ausgabe etwas anders formatierst.

    btw, die Schleifen "for(count=0;count<11;count++)" sehen grauenhaft aus - das geht wesentlich eleganter mit einem "printf("%11s",Verkaeufer[i].Nachname);"



  • also anstatt der ganzen for einfach printf und das funktioniert dann genau so?


Anmelden zum Antworten