Rautezeichen



  • ich bedanke mich viel mal sehr sehr lieb von euch.
    aber ich kann es nicht anschauen,wenn ich die cods in Visual Studio 2005 eingebe dann startet und geht wieder nach eine Sekunde weg.

    die .cpp Datein habe ich schon auf .c um gestellt.

    lg



  • the.neo schrieb:

    ich bedanke mich viel mal sehr sehr lieb von euch.
    aber ich kann es nicht anschauen,wenn ich die cods in Visual Studio 2005 eingebe dann startet und geht wieder nach eine Sekunde weg.

    die .cpp Datein habe ich schon auf .c um gestellt.

    lg

    Dann drück nicht F5 sondern Strg + F5 oder füge vor dem return getchar(); hinzu.



  • wooow ihr seid klasse danke.



  • ich möchte den INPUT zahl mit Tastaur eingeben es funktioniert auch aber es blinkt einmal und geht weider weg

    char INPUT[3];
    
                  printf("\n\nBitte eine Fahrkarte waehlen :  ");
    	      scanf("%s",&INPUT);
    

    was muss ich machen damit es funktioniert besser gesagt warum blinkt es einmal und geht weg? 😞 ?



  • Versuch mal folgendes:

    char INPUT[3];
    
    printf("\n\nBitte eine Fahrkarte waehlen :  ");
    
    fgets(INPUT, 3, stdin); // Die 3 wie bei char INPUT[3]
    


  • scanf("%s",INPUT);
    

    Ein Chararray braucht kein Adressoperator...



  • Danke mit fgets funktioniert wunderbar,ihr seid echt hilfsbereit und cool danke danke



  • Hi Leute ich habe ein neues Problem könnte ihr bitte mir sagen wo ich was ändres soll. ich bedanke mich schon jetzt 100 mal

    ........
    
            char Z[10];
    	int g ;
    	int wg;
    	int e;
    
       do 
    	    {
    	      printf("Zahl1 ein geben  :  ");
    	      scanf("%d",&g);
    	    } while (g < 1);  // Nur positive Zahlen
    
    	      printf("\n zahl2   :  ");
    	      scanf("%d",&wg);
    
    		  e = g-wg;
    		  e = Z[10];
    
        for (i = 0; i < 5; ++i)
        { 
            for (j = 0; j < strlen(Z); ++j)  
                     switch (Z[j]) 
                    { 
                    case ',': 
                        printf("%s", Komma[i]); 
                        break; string
    
    .............
    


  • Du musst schon sagen, was nicht geht (Fehlermeldungen, etc.).



  • ich möchte, das Ergebnis e in Z[10] speichern,

    e = g-wg;
    		e= Z[10];
    

    die sind meine Warnungen :

    Warning 1 warning C4996: 'scanf' was declared deprecated c:\users\neo\desktop\munzen\mu\mu\mu.c 35
    Warning 2 warning C4996: 'scanf' was declared deprecated c:\users\neo\desktop\munzen\mu\mu\mu.c 39
    Warning 3 warning C4018: '<' : signed/unsigned mismatch c:\users\neo\desktop\munzen\mu\mu\mu.c 47
    Warning 4 warning C4700: uninitialized local variable 'Z' used c:\users\neo\desktop\munzen\mu\mu\mu.c 42



  • Z[10]=e;
    

    wäre da zweckdienlicher.



  • Athar schrieb:

    Z[10]=e;
    

    wäre da zweckdienlicher.

    halloooo jemand zu hause oder sind hier nur dfogen junkeys unterwegs

    llg lolo



  • ,onResize(obj.container gay){
    this.gayLords = obj.container gay
    }

    hey ho()......



  • Tag ,

    ich habe auch mit

    Z[10]=e;
    

    hats auch nicht gebracht.
    das Programm startet, ich kann zahl1 und zahl2 eingeben aber dann kommt zack diese Fehler Meldung :

    "Run-Time Check Failure #2 - Stack around the variable 'Z' was corrupted."

    und zum Auswahl ist
    Break und Continue

    lg



  • Du machst mir Spaß... wenn Z nur 10 Elemente hat, kannst du nicht auf's 11te (Z[10]) zugreifen. Und unten das strlen(Z) ist ja auch hochinteressant...

    was hast du eigentlich genau vor?



  • Z kennt dein Compiler nicht, oder hast du das in dem nicht geposteten Quelltext definiert? Die 4. Warnung sagt du hast das nicht oder dein Compiler versteht nicht was du ihm beibringen wolltest.

    Da er es nicht kennt, kann da jeder beliebige Wert drin stehen - bei sehr grossen Werten bekommst du halt einen Stacküberlauf.



  • Hier ist mein gesamte Quellcode

    #include <stdafx.h> 
    #include <stdio.h> 
    #include <string.h> 
    
    int main(void) 
    {	
    	// deklaration
    
        int j,i; 
        char Komma[5][6] =    {"     ", "     ", "     ", "     ", "    *"}; 
        char Null[5][6] =   {"#####", "*   #", "#   #", "#   #", "#####"}; 
        char Eins[5][6] =   {"    #", "  # #", "#   #", "    #", "    #"}; 
    	char Zwei[5][6] =   {"#####", "    #", "#####", "#    ", "#####"};
    	char Drei[5][6] =   {"#####", "    #", "#####", "    #", "#####"};
    	char Vier[5][6] =   {"#   #", "#   #", "#####", "    #", "    #"};
    	char Fuenf[5][6] =  {"#####", "#    ", "#####", "    #", "#####"};
    	char Sechs[5][6] =  {"#####", "    #", "#####", "#   #", "#####"};
    	char Sieben[5][6] = {"#####", "    #", "   # ", "  #  ", " #   "};
    	char Acht[5][6] =   {"#####", "#   #", "#####", "#   #", "#####"};
    	char Neun[5][6] =   {"#####", "#   #", "#####", "    #", "#####"};
    	char Z[10];
    	int g ;
    	int wg;
    	int e;
    
    		/*  printf("\n\nBitte eine Zahl waehlen :  \n\n\n");
    		  fgets(Z, 10, stdin); //wird benutzt, um eine Zeile aus einem externen File zu lesen indiesem Fall von externe Eingabe.
    	      printf("\n\n"); // abstand zwischen eingabe und ausgabe*/
    
       do 
    	    {
    	      printf("Zahl1 ein geben  :  ");
    	      scanf("%d",&g);
    	    } while (g < 1);  // Nur positive Zahlen
    
    	      printf("\n zahl2   :  ");
    	      scanf("%d",&wg);
    
    		  e = g-wg;
    		  Z[10]=e;
    
    	 //printf("\n\n bitte geben Sie errechnet wert ein :  \n\n\n");
    		//fgets(Z,10, stdin);
    
        for (i = 0; i < 5; ++i) // schleife um 5 mal Rautezeichen in 5 reihen 
        { 
            for (j = 0; j < strlen(Z); ++j)  // strlen bestimmt die länge von string
            { 
                switch (Z[j])  // die Schubladen
                { 
                    case ',': 
                        printf("%s", Komma[i]); 
                        break; 
    
                    case '0': 
                        printf("%s", Null[i]); 
                        break; 
    
                    case '1': 
                        printf("%s", Eins[i]); 
                        break; 
    				case '2': 
                        printf("%s", Zwei[i]); 
                        break; 
    				case '3': 
                        printf("%s", Drei[i]); 
                        break; 
    				case '4': 
                        printf("%s", Vier[i]); 
                        break; 
    				 case '5': 
                        printf("%s", Fuenf[i]); 
                        break; 
    				case '6': 
                        printf("%s", Sechs[i]); 
                        break; 
    				case '7': 
                        printf("%s", Sieben[i]); 
                        break; 
    				case '8': 
                        printf("%s", Acht[i]); 
                        break; 
    				case '9': 
                        printf("%s", Neun[i]); 
                        break; 
                } 
               printf("   "); // abstandhalter zwischen 2 ziffern 
            } 
    
            printf("\n");  // nach jede array eine Zeile runter kommen
        } 
    
        return getchar(); 
    }
    

    ich habe viele Variante versucht aber irgendwie geht nicht.

    momentan hänge ich an 2. teil fest.

    1. teil: war für mich die zahlen als Rautenzeichen anzeigen lassen
    2. teil : Ergebnis von zahl1 und zahl 2 als rauter Zeichen anzeigen lassen
    und der 3. teil : soll solange laufen bis Ergebnis gleich null ist

    lg



  • ich hab auch mal bissl herumgebastelt. Hoffe, das es etwa C entspricht.
    Dein switch-case und dein Rautencontainer .. also des waren mir zu viel Variablen. Und ich habe 4*7 als Größenordnung verwendet.

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
    	int character, line, row;
    	int ascii, index;
    	char input[20];
    	char numbers[11][29] =
    		{
    			{ "#####  ##  ##  ##  ##  #####" },
    			{ "   #   #   #   #   #   #   #" },
    			{ "####   #   ######   #   ####" },
    			{ "####   #   #####   #   #####" },
    			{ "#  ##  ##  #####   #   #   #" },
    			{ "#####   #   ####   #   #####" },
    			{ "#####   #   #####  ##  #####" },
    			{ "####   #   #   #   #   #   #" },
    			{ "#####  ##  ######  ##  #####" },
    			{ "#####  ##  #####   #   #####" },
    			{ "                         #  " }
    		};
    
    	do
    	{
    		// Einlesen der Zahlen
    		scanf("%s", input);
    
    		for(row=0; row<7; ++row)
    		{
    			for(character=0; character<strlen(input); ++character)
    			{
    				ascii = (int)input[character];
    				index = -1;
    
    				// Sonderbehandlung fuer Kommata
    				if(ascii == 46)
    					index = 10;
    				// Zahlen 0-9
    				else if(ascii >= 48 && ascii <= 57)
    					index = ascii-48;
    
    				if(index >= 0 && index <= 10)
    				{
    					for(line=0; line<4; ++line)
    					{
    						printf("%c", numbers[index][row*4+line]);
    					}
    					printf("  ");
    				}
    			}
    			printf("\n");
    		}
    
    	} while(input[0] != 'q');
    
    	return 0;
    }
    

    😃 ist vielleicht net unbedingt perfekt.



  • Hi
    @ BasicMan01 vielen danke

    aber wie kann ich hier etwas Rechnung rein packen
    es soll von zahl1 dem zahl2 solange abziehen bis zahl1 null wird auch bei jede Eingabe von zahl2 das zwischen-Ergebnis zeigen lassen

    10-3=7 zeigen lassen
    7-5= 2 zeigen lassen
    2-2= 0 zeigen lassen
    diese abziehen und zeigen lassen ist mein Hauptproblem 😞

    lg



  • In dem Fall würde ich zunächst ersteinmal die Ausgabe auf der Konsole in eine
    Funktion stecken. Als Übergabeparameter den Zahlenstring. (im prinzip das bisherige Programm 😃 )

    kleines Beispiel Fahrkartenautomat:
    User möchte eine Karte kaufen im Wert von 2,60

    Ausgabe auf der Konsole 2,60 (mittels der geschriebenen Funktion)
    User wirft ein 2,00 Stück ein.
    du rechnest 2,60 - 2,00 und gibst das Ergebnis (0,60) an die Ausgabefunktion
    Ausgabe auf der Konsole 0,60
    User wirft ein 50 Cent Stück ein
    du rechnest 0,60 - 0,50 und gibst das Ergebnis (0,10) an die Ausgabefunktion
    Ausgabe auf der Konsole 0,10
    User wirft ein 10 Cent Stück ein
    du rechnest 0,10 - 0,10 und gibst das Ergebnis (0,00) an die Ausgabefunktion

    Ohne Funktion wird es sehr Unübersichtlich.

    Auch kannst du einen double einlesen anstatt eines C-Strings. Das macht sich für eine Rechnung einfacher. Für die Ausgabe wäre dann ein String besser.
    Zum Casten bzw. umwandeln kannst du sprintf() verwenden.


Anmelden zum Antworten