2016-10-21 3 views
-3

Ich mag das Ergebnis zu formatieren, so wäre esDruckergebnisse in einer formated Form

output

hier eingestellt wird, ist das, was ich bisher geschrieben:

void affichage(int note[][50],char nom[][50],float moy[], float moy_e[], char module[][50],int nb_etudiant, int nb_module){ 
    int i,j; 
    printf("\n\t\taffichage\n\n"); 
    printf("\t"); 
    strcpy(module[nb_module],"Moy G"); 
    strcpy(nom[nb_etudiant],"Moy C"); 
    for (i=0;i<nb_module;i++){ 
     printf("%5s ",module[i]); 
    } 
    printf(" %5s",module[nb_module]); 
    printf("\n"); 
    for(i=0;i<nb_etudiant;i++){ 
     printf("%-5s ",nom[i]); 
     for (j=0;j<nb_module;j++){ 
      printf("%-7d ", note[i][j]); 
     } 
     printf(" %-7.1f\n",moy_e[i]); 
    } 
    printf("\n\n"); 
    printf("%5s ",nom[nb_etudiant]); 

    for (i=0;i<nb_module;i++){ 
     printf("%-7.1f ",moy[i]); 
    } 
} 

Antwort

-2

Als Anregung, printf Renditen die Länge der Zeichenfolge formatiert.
Da Sie den Schüler-Daten angezeigt werden sollen, wenn wir Ihnen eine Tabelle
mit 2 Spalten annehmen:

 

X chars Y chars -------|------ -------|--------- | | | ---------------------------------------- nom | prénom | note ---------------------------------------- Jane | Mari | 15 ---------------------------------------- Robert | Daniel | 16 ----------------------------------------- X : number of white spaces - 2 Y : number of white space - 2 it can be any value, but make sure it will be greater than most of
the lengths of the property displayed in that column

für jeden Schüler, für die erste Zelle (nom) Sie zuerst seinen Namen erhalten Sie gedruckt werden soll, dann die Länge des gedruckten Namens PN (printf Rückgabewert) und print (X - PN) Whitespace, dann fügen Sie das Pipe-Zeichen | hinzu. Sie machen das gleiche für die nächste Eigenschaft, die prenom ist, und zuletzt drucken Sie \ n für eine neue Zeile.

#include <string.h> 
#include <stdio.h> 

typedef struct 
{ 
    char firstName[25]; 
    char lastName[25]; 
    float grade1; 
    float grade2; 
}Student; 

Student createStudent(char* firstName, char* lastName, float grade1, float grade2) { 
    Student student; 

    strcpy(student.firstName, firstName); 
    strcpy(student.lastName, lastName); 
    student.grade1 = grade1; 
    student.grade2 = grade2; 

    return student; 
} 

/* each column has a width equal to 20 characters 2 for borders and 18 of whitespaces or characters */ 
void printBorder() { 
    int i = 0; 
    int len = 0; 

    for(i =0 ; i<80; ++i) printf("-"); // top border 
    printf("\n"); // breakline 

    printf("|"); // left border of the left cell 
    len = printf("First Name"); // len is equal to 10 

    for(i=0; i<18 - len; ++i) printf(" "); // printing whitespace 
    printf("|"); // print the right border of the cell 
    len = printf("Last Name"); // len is equal to 9 

    for(i=0; i<18 - len; ++i) printf(" "); // printing whitespace 
    printf("|"); 
    len = printf("Grade 1"); // len is equal to 7 

    for(i=0; i<18 - len; ++i) printf(" "); 
    printf("|"); 
    printf("Grade 2\n"); 

    for(i =0 ; i<80; ++i) printf("-"); // bottom border of header 
    printf("\n"); // breakline 
} 

void printBody(Student* students, int nbrOfStudents) { 
    int j = 0; // to iterate over students 
    int len = 0; 
    int i =0; // for drawing 
    for(j = 0; j< nbrOfStudents; ++j) { 
     printf("|"); // left border of the left cell 
     len = printf("%s", students[j].firstName); 

     for(i=0; i<18 - len; ++i) printf(" "); // printing whitespace 
     printf("|"); // print the right border of the cell 
     len = printf("%s", students[j].lastName); 

     for(i=0; i<18 - len; ++i) printf(" "); // printing whitespace 
     printf("|"); 
     len = printf("%.2f", students[j].grade1); 

     for(i=0; i<18 - len; ++i) printf(" "); // printing whitespace 
     printf("|"); 
     len = printf("%.2f\n", students[j].grade2); 

    } 

    for(i =0 ; i<80; ++i) printf("-"); // bottom border of header 
    printf("\n"); // breakline 
} 


int main() { 
    Student students[3] = { 
     createStudent("Jane", "Roberson", 99, 75), 
     createStudent("Amelia", "Coeur-de-lait", 85, 89), 
     createStudent("Anna", "Stone", 65, 30) 
    }; 

    printBorder(); 
    printBody(students, 3); 

    return 0; 
} 
+0

Dies könnte für das OP nützlicher sein, wenn Sie Code zum Drucken einiger Beispielzeilen zur Verfügung gestellt haben. –

+0

Ja, ich habe dich nicht ganz bekommen –

+0

Ich aktualisiere meinen Awnser! überprüfen Sie bitte den Beispielcode, und wenn Sie es nützlich finden, upvote es plz :) –

Verwandte Themen