Drucken Sie eine int in C ohne Printf () oder alle Funktionen

Ich eine Aufgabe haben, wo ich brauche, um zu drucken, eine ganze Zahl in C ohne Verwendung von printf, putchar, etc. Keine header-Dateien dürfen enthalten sein. Keine Funktion ruft außer für alles, was ich schrieb. Ich habe eine Funktion my_char verwende ich (vielleicht falsch), aber es gibt einen Charakter. Ich habe zurzeit folgenden code, welche den Druck, die Zahl aus rückwärts. Nicht nach einer Antwort zu suchen. Gerade auf der Suche für eine Richtung, die etwas Hilfe, vielleicht sehe ich es komplett falsch.

void my_int(int num)
{   
  unsigned int i;    
  unsigned int j;

  char c;

  if (num < 0)    
    {
      my_char('-');
      num = -num;
    }

  do    
    {
      j = num % 10;
      c = j + '0';
      my_char(c);
      num = num/10;
    }while(num >0);
}
  • Eine Möglichkeit ist die Verwendung von Rekursion. Beachten Sie auch, dass der code schlägt fehl, wenn num == INT_MIN (zumindest auf der typischen 2-Komplement-Maschine).
  • Habe vergessen zu erwähnen, tut mir Leid, nicht erlaubt, Rekursion zu verwenden, entweder (ich weiß, frustrierend)
  • Wenn buchstäblich keine header-Dateien dürfen enthalten sein, Sie können nicht drucken Sie auf die Standardausgabe - auch das 'schreiben' syscall (die auf die zugegriffen werden mit inline-assembly) ist deklariert in der header-Datei...
  • Vielleicht stackoverflow.com/questions/468262/... helfen könnte. 🙂
  • Können Sie verwenden Sie einen text-editor und einem compiler oder sind Sie tun dies durch Magnetisierung Ihre Festplatte direkt mit einer Nadel?
  • die my_char Funktion hat der write-Systemaufruf enthalten, aber das ist alles, was ich mir erlaubt zu nennen. innerhalb dieser Funktion und die Datei darf ich nicht nennen, sonst nichts.
  • Ich kann auch nicht malloc nichts und deklarieren der arrays.
  • du bist beschränkt, die grundlegenden Elemente der Sprache. Keine arrays? Keine Rekursion? Ernsthaft... Was soll dieser hirnrissige Aufgabe?
  • wir sind im wesentlichen das schreiben unsere eigene version von printf, unsere eigene Bibliothek. Ich mache nicht die Regeln. Mein professor hat.
  • Sehe ich, aber immer noch... Auch wenn Sie die Implementierung von printf (), was ist der Punkt in nicht in der Lage, um ein array zu verwenden? Dann, wie auf der Erde speichern Sie das Ergebnis? Dein prof muss ein sehr stur und grausamer Mann.
  • Ich weiß. Seine sehr frustrierend. Ich habe diese für ein paar Tage. und ich kann nicht herausfinden, auch ohne über eine der Einschränkungen.
  • Ich glaube, Sie finden konnten, eine gute Erklärung ist hier: stackoverflow.com/questions/5528389/...
  • Ich kann nicht alles verwenden, was es gibt. Die Antworten dort beziehen Sie alle Dinge, die Beschränkungen auf meine Aufgabe.
  • Wie wärs, wenn du all diese anderen Einschränkungen, die Sie erwähnt haben in den Kommentaren zu der eigentlichen Frage!? Ohne Kenntnis und Zugriff auf die physische hardware, müssen Sie mindestens eine Funktion, die zur Darstellung eines Zeichens.

InformationsquelleAutor CLZ828 | 2012-09-09
Schreibe einen Kommentar