Tabelle in C erstellen



  • In c++ haben wir das einfach immer so gemacht:

    cout<<"-------------------------------------"<<endl;

    Damit haben wir die Tabelle gezeichnet. In C ist es dann eben printf aber wie gesagt,das sieht dann hinterher nicht so wirklich tabellenmäßig aus.


  • Mod

    cout<<"-------------------------------------"<<endl;
    

    sollte aber (bis auf ein paar Interna die hier unwichtig sind) genau das gleiche machen wie:

    printf("-------------------------------------\n");
    

    Was bekommst du denn stattdessen?



  • Ich gebe dir mal einen Top-Down Entwurf an:

    #include <stdio.h>
    
    int mult(int i,int k)
    {
      Was macht man hier wohl mit i und k?
      ...
      return ...;
    }
    
    void tabelle()
    {
      hier mittels printf die Tabelle mit Pseudolinien und die mittels mult(x,y) berechneten Werte ausgeben
    }
    
    int main()
    {
      tabelle();
      return 0;
    }
    


  • Ok danke,das hilft schonmal etwas :).



  • Also für die Tabelle hab ich jetzt das hier:

    int main(){

    int zeilen;
    int spalten;

    printf(" |\n");

    for(zeilen=0; zeilen<12; ++zeilen){
    if( zeilen > 1 )
    {
    printf(" %2d |",(zeilen-1));
    }
    else
    {
    printf(" |",zeilen);
    }
    for( spalten=0; spalten<10; ++spalten)
    {
    if( zeilen == 0 )
    {
    printf("%3d", (spalten+1));
    }
    else
    {
    if( zeilen == 1)
    {
    printf("---");
    }
    }
    }

    printf("\n");
    }

    ich erhalte damit auch den außenrahmen sozusagen. aber wie bring ich c jetzt bei,innerhalb der tabelle die werte zu berechnen?



  • #include <stdio.h>
    
    int mul(int i,int k)
    {
       mul=i*k;
      return mul;
    }
    
    void tabelle()
    {
    
           int zeilen;
           int spalten;
    
           printf("       |\n");
    
           for(zeilen=0; zeilen<12; ++zeilen)
           {
              if( zeilen > 1 )
              {
                  printf("   %2d  |",(zeilen-1));
              }
              else
              {
                 printf("       |",zeilen);
              }
              for( spalten=0; spalten<10; ++spalten)
              {
                    if( zeilen == 0 )
                {
                    printf("%3d", (spalten+1));
                }
                 else
                 {
                     if( zeilen == 1)
                     {
                       printf("---");
                    }
                 }
              }
    
              printf("\n");
           }
    
    int main()
    {
      tabelle();
      return 0;
    }
    
        }
    

    insgesamt siehts so aus.nur die sache mit dem rückgabewert und der berechnung leuchtet mir leider nicht so richtig ein.



  • Den Rückgabewert in welcher Zeile meist du? Entweder Zeilennummer angeben oder einige wenige Zeilen Quelltext.

    Was soll die geschweifte Klammer am Ende in Zeile 52.

    Das sollten aber Punkte sein wo sich C und C++ sehr ähnlich sind.

    Nutze für den Quelltext den Button C/C++ statt Code.

    Mit dem Quelltext formatieren - da geht noch was, damit das übersichtlicher wird.

    MfG f.-th.


  • Mod

    int mul(int i,int k)
    {
       mul=i*k;
      return mul;
    }
    

    Nein, so funktioniert das nicht. mul ist ja schon der Name der Funktion, der kannst du nichts zuweisen. Du müsstest so etwas in dieser Art machen:

    int mul(int i,int k)
    {
       int ergebnis =i*k;
      return ergebnis;
    }
    

    Oder kürzer und ohne unnötige Zwischenwerte:

    int mul(int i,int k)
    {
      return i*k;
    }
    

    Den Rest habe ich mir gerade noch nicht angeguckt.



  • das mit mul hab ich gemerkt,habs schon geändert,danke^^



  • ich bin kurz vorm verzweifeln...wie bekomme ich das hin,das c mir mul in der tabelle ausrechnet?ich hab wirklich keine ahnung wie ich das wo einbinden soll.wäre also nett,wenn mir das mal jemand ausführlich erklären könnte...


  • Mod

    Lizitas schrieb:

    ich bin kurz vorm verzweifeln...wie bekomme ich das hin,das c mir mul in der tabelle ausrechnet?ich hab wirklich keine ahnung wie ich das wo einbinden soll.wäre also nett,wenn mir das mal jemand ausführlich erklären könnte...

    Mal andersrum gefragt: Offensichtlich ist die Aufgabe für dich in C++ ja kein Problem. Kommt bei deiner C++ Lösung das Wort class oder struct vor? Oder etwas aus der STL? Wenn nein (was ich annehme), dann kannst du das praktisch 1:1 nach C übersetzen.



  • Das stimmt nicht ganz.In C++ würde ich die Ausgabe der Berechnung in der Tabelle in etwa so schreiben:

    for(i=1;i<=10;i++)
    {
    cout<<setw(6)<<i;
    if (i==1)
    cout<<setw(25)<<...<<endl;
    else
    cout<<setw(25)<<...<<setw(18)<<...<<endl;
    }

    Das cout in C printf ist,weiß ich ja. Aber was würde man in C anstatt setw(...) schreiben?Mein Problem ist,dass wir einfach keine richtige Einführung bekommen. Mir fehlen so viele Befehle.Deswegen wäre ich sehr dankbar,wenn mir das einfach mal jemand aufschreiben würde,wie man das in C macht. Es muss auch nicht meine Aufgabe sein,wenn ihr so Angst davor habt,dass ich das einfach kopiere. Ich will es einfach nur einmal gesehen haben,wie das funktioniert,dann weiß ichs wenigstens endlich.




Anmelden zum Antworten