2017-01-23 5 views
0

Ich möchte eine Tabelle erstellen, die vier Spalten wie unten:eine Tabelle mit 4 Spalten für Konvertierungen zwischen ft yds

Feet ------- --------- Yards -------- ------ Yards Feet


Derzeit ist nur mein Code ermöglicht es mir, zwei getrennte Tabellen machen von den Füßen zu Yards in einer Tabelle beiden Konvertierungen anzuzeigen, und Meter zu Fuß in einer anderen Tabelle. Ich bin mir nicht sicher, wie es funktioniert, alle 4 Konvertierungen auf einmal in 4 Spalten anzuzeigen. Ich nehme ein Array und vielleicht eine For-Schleife statt einer While-Schleife?

Hier ist mein Code, beachten Sie, dass ich von 0 bis 100 Meter anzeigen möchte. So untere Grenze 0 und die obere Grenze ist 100.

int upperLimit = 100; 
int lowerLimit = 0; 
int interval = 5; 
float yards = 0; 
float feet = 0; 

void toYards() 
{ 
    feet = lowerLimit; 
    while(feet <= upperLimit) 
    { 
    yards = feet/3; 
    printf("\n%3.0f %20.1f", feet, yards); 
    feet = feet + interval; 
    } 
} 

void toFeet() 
{ 
    yards = lowerLimit; 
    while(yards <= upperLimit) 
    { 
    feet = yards * 3 ; 
    printf("\n%3.0f %20.1f", yards, feet); 
    yards = yards + interval; 
    } 
} 

void displayFeet() 
{ 
    printf("\n\n"); 
    printf("Yards \t Feet"); 
    printf("\n----------------------------"); 
} 

void displayYards() 
{ 
    printf("\n\n"); 
    printf("Feet \t Yards"); 
    printf("\n----------------------------"); 
} 
+0

Ich sehe Ihre Variablen Füße und Yards nirgendwo deklariert .... sind sie globale Scope-Variablen? –

+0

@ m.raynal Ja, sie kommen früher im Code. –

+0

In 'printf (" \ n% 3.0f% 20.1f ", Füße, Yards);' Ich bin fasziniert, warum Sie eine kleinere Feldbreite für Füße als für Yards haben, da es mehr Fuß als Yards gibt. Hinweis: Am besten formatieren Sie die Spaltenüberschriften auf die gleiche Breite, mit der Sie ihre Daten formatieren. –

Antwort

1

Wenn Sie beide Hof angezeigt werden soll -> Füße und Füße -> Hof in derselben Zeile (in einer Tabelle), müssen Sie printf von 4 Spalten tun nicht zwei. Dementsprechend müssen Sie Ihre Funktionen ändern. Siehe unten für den Hinweis:

void printFeetNYardTables() 
{ 
    int unit = lowerLimit; 
    while(unit <= upperLimit) 
    { 
    printf("\n%3.0f %20.1f %3.0f %20.1f", unit, toYards(unit), unit, toFeet(unit)); 
    unit++; 
    } 
} 

double toYards(int feet) 
{ 
    return (double) feet/3.0; 
} 

double toFeet(int yards) 
{ 
    return (double) yards*3.0; 
} 
Verwandte Themen