Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
28.02.2007, 19:05
emilhmicheal



hallo nochmal :d

ich hab noch eine weitere problem bei einem programm
ich versuche ein programm zu schreiben der zwichen zahlen system konvertieren kann
mann muss nur der zahl eingeben und der basis und wird umgrechnet und gezeigt..
z.b
eingab zahl= 244
basis zahl = 2
dann die ausgabe wird = 11110100 gezeigt
usw..
soweit funkst der programm gut..
das proglem ist dass sich wiederhollen soll
wenn ich ein zahl gebe und nach dem brechnung soll sich wiederhollen bis ich die zahl 0 eingebe.
und wenn ich in basis 0 oder 1 eingebe dann soll eine fehler meldung zeigen und dann wiederhollt der vorgang nochmal
das heisst.. unterbrechung nur wenn ich 0 in der erste eingabe eingeben.

Quellcode:#include <stdio.h>

int main()
{
    int digit1[100];// i = 0 -->99 wird bis zu 100 mal wiederholt
    int zahl, basis;                                
    int i=0;
    printf("%23.0s####################################\n");
    printf("%23.0s****** Zahlensystem Konverter ******\n");
    printf("%23.0s####################################\n\n");
    printf("%26.0sGeben Sie eine Zahl ein:  ");
    scanf ("%d",&zahl);
    printf("%26.0sGeben Sie die Basis ein:  ");  
    scanf("%d",&basis);
    if (basis<=1) {
        printf("%26.0sMinimalle Basis zahl ist 2\n\n");
    } else {
    printf("%29.0d(Basis %d) --> ",zahl,basis);
    
    while(zahl > 0)
    {
        digit1[i]= zahl % basis ;// faengt von i=0 an und gibt uns den uebertrag (modulu)
        zahl= zahl / basis; // devidiert dez durch die eingegebne basis
        i++;
    }

    i--;// zeigt auf den naechsten freien platz
    while( i>=0 )// um von null anzufangen
    {
        printf("%d|", digit1[i]);// zeigt die stellen nacheinander
        i--;
        
    }

    printf(" (Basis %d)\n", basis);
    }
    
    //return 0;
}  
danke für eure hilfe vorraus.
ich hab vergessen die adresse für diese thread einzueben.. bitte ein modrator der mir dabei hilft
soll die adresse (Zahlen Konwerter )lauten..danke

--


Dieser Beitrag wurde am 28.02.2007 um 20:46 von Adrian_Broher bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
28.02.2007, 19:48
oxff



Denk mal eine Sekunde nach, du musst die scanf Abfrage in der Schleife natürlich neu machen. Deine printf's sind übrigens grober Unfug! Lern erstmal die Grundlagen...

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche
002
28.02.2007, 20:00
emilhmicheal



das was ich versuche..und darum bitte ich um hilfe..

--

zum Seitenanfang zum Seitenende Profil || Suche
003
28.02.2007, 21:02
oxff



Quellcode:int zahl;

do
{
  printf("Geben sie ne Zahl ein: ");
  scanf("%d", &zahl);
} while(zahl != 0);

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche
004
28.02.2007, 22:22
Master Pegasus



Es ist geschickt bei scanf ein Leerzeichen in den Formatstring einzufügen, um eventuell im Puffer vorhandene Whitespacesymbole (Leerzeichen, Returns, ...) zu ignorieren, also scanf(" %d", &x) statt scanf("%d", &x).

Zu deinen printfs: printf("%23.0s####################################\n"); ist in mehrerlei Hinsicht falsch:
- %s ist ein Platzhalter für einen Charfeld, der als zweiter Parameter kommen muss
- 23 gibt an wieviel Platz für das Charfeld im Ausgabestring reserviert wird
- .x macht nur bei Gleitkommazahlen Sinn, da das die Anzahl der ausgegebenen Nachkommastellen angibt.

Siehe hierzu auch: http://www.die.net/doc/linux/man/man3/printf.3.html

--

Was immer auch geschieht: Nie sollt Ihr so tief sinken, von dem Kakao, durch den man Euch zieht, auch noch zu trinken! -- Erich Kästner

zum Seitenanfang zum Seitenende Profil || Suche
005
01.03.2007, 01:23
caedes



also da du ja immer noch nicht c++ sondern c codest, kann ich dir "c von a bis z" empfehlen, gibts als openbook, siehe
http://www.pronix.de/pronix-4.html
und als download: http://www.galileocomputing.de/katalog/openbook
(kaufen kann man's natürlich auch, link ist beim DL)

hat auch viele beispiele, auch zu so einfachen ein/ausgabesachen, wie du sie grade machst, inkl lösungen für probleme, die dabei auftreten können

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.

zum Seitenanfang zum Seitenende Profil || Suche
006
01.03.2007, 15:05
oxff



Zitat:
Master Pegasus postete
- .x macht nur bei Gleitkommazahlen Sinn, da das die Anzahl der ausgegebenen Nachkommastellen angibt.
printf("%.10s", "foo"); belegt 10 zeichen und richtet `foo' darin rechtsbuendig aus, kann also ohne x. Sinn machen.

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche
007
02.03.2007, 18:01
Master Pegasus



Also bei mir geht rechtsbündige Ausrichtung ohne weitere Parameter, nur für linksbündig brauch ich ein -:
Quellcode:#include <stdio.h>

int main ()
{
        printf("%10s\n", "foo");
        printf("%-10s\n", "bar");
        return 0;
}
produziert
       foo
bar
Und laut manual page bewirkt der Punkt bei Strings das folgende:

Die Genauigkeit
Eine optionale Genauigkeit in der Form eines Punkts (‘.’) gefolgt von einer optionalen Zahl. Statt einer Dezimalzahl kann auch ‘*’ oder ‘*m$’ (für eine Dezimalzahl m) angegeben werden, um zu spezifizieren, dass die Genauigkeit im nächsten (oder m-ten) Argument gegeben ist, welches den Type int haben muss. Wenn die Zahl weggelassen wird oder es eine negative Zahle ist, wird eine Genauigkeit von Null angenommen. Dies gibt die minimale Anzahl der Ziffern an, die bei den Umwandlungen d, i, o, u, x und X erscheinen, bzw. die Anzahl der Ziffern nach dem Dezimaltrennzeichen bei a, A, e, E, f und F , die maximale Anzahl von signifikanten Ziffern bei g und G , oder die maximale Anzahl von auszugebenden Zeichen eines Strings bei s und S.

Einigen wir uns also auf die Manpage: Der Punkt gibt bei Strings die maximale Anzahl an ausgegebenen Zeichen an und die Ausrichtung ändert man mit -.

--

Was immer auch geschieht: Nie sollt Ihr so tief sinken, von dem Kakao, durch den man Euch zieht, auch noch zu trinken! -- Erich Kästner


Dieser Beitrag wurde am 02.03.2007 um 18:09 von Master Pegasus bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
02.03.2007, 21:47
emilhmicheal



ich danke euch alle für eure hilfe..
es hat geklappt..

--

zum Seitenanfang zum Seitenende Profil || Suche