2016-11-16 1 views
0

Ein Teil einer Zuweisung, die fällig ist. Die Zuweisungsstatus -Ein Programm, das die Anzahl der Sterne ausgibt, die der Benutzer unter Verwendung einer Funktion eingibt und den Wert an die Funktion weitergibt

Schreiben Sie ein Programm, das 5 Balkendiagramme mit Sternchen druckt. Eine Funktion, die die Länge (Anzahl der Sterne) akzeptiert, sollte erstellt und dann 5 verschiedene Male aufgerufen werden, um die Graphen zu drucken. Verwenden Sie die Eingabeüberprüfung, um sicherzustellen, dass ein Benutzer eine positive Zahl eingibt, die kleiner oder gleich 50 ist. Erstellen Sie eine Funktion, die einen Ganzzahlwert akzeptiert, der die Anzahl der zu druckenden Sternchen angibt. Nur 1 Wert sollte an die Funktion übergeben werden. Verwenden Sie eine for-Schleife innerhalb der Funktion, um die Anzahl der Sternchen zu drucken, die der an die Funktion übergebenen Zahl entspricht.

Ich habe das bisher, aber ich kämpfe ziemlich schlecht, wenn es um Funktionen geht. Ich bin unsicher, was mein nächster Schritt wäre und wie ich die Anzahl der vom Benutzer eingegebenen Sternchen drucken könnte.

Vielen Dank für Ihre Hilfe. Ich bin nur ein Student!

#include <stdio.h> 
//function prototype 
void graph(int numberOfAsterisks); 

int main(void){ 
// declare variables for length of each chart 
int chart1; 
int chart2; 
int chart3; 
int chart4; 
int chart5; 
// declare loop variable 
int i; 

// prompt the user and get lengths of each graph do/while to repeat if invalid 
do { 
printf("How long is chart 1? "); 
scanf("%d", &chart1); 
} while (chart1 >= 50); 

do { 
printf("How long is chart 2? "); 
scanf("%d", &chart2); 
} while (chart2 >= 50); 

do { 
printf("How long is chart 3? "); 
scanf("%d", &chart3); 
} while (chart3 >= 50); 

do { 
printf("How long is chart 4? "); 
scanf("%d", &chart4); 
} while (chart4 >= 50); 

do { 
printf("How long is chart 5? "); 
scanf("%d", &chart5); 
} while (chart5 >= 50); 

//blank space 
printf("\n"); 

// display numbers of asterisks 

    printf("1. %d| ", chart1); 
     for(i=0; i< chart1; i++) 
     { 
      printf("*"); 
     } 

    printf("\n"); 
    printf("1. %d| ", chart2); 
    for(i=0; i< chart2; i++) 
     { 
      printf("*"); 
     } 

    printf("\n"); 
    printf("1. %d| ", chart3); 
    for(i=0; i< chart3; i++) 
     { 
      printf("*"); 
     } 

    printf("\n"); 
    printf("1. %d| ", chart4); 
    for(i=0; i< chart4; i++) 
     { 
      printf("*"); 
     } 

    printf("\n"); 
    printf("1. %d| ", chart5); 
    for(i=0; i< chart5; i++) 
     { 
      printf("*"); 
     } 

    printf("\n"); 



} 
+0

Müssen die "Balkendiagramme" nebeneinander oder unmittelbar nach jeder Eingabe gedruckt werden? Hast du Arrays gelernt? – DigitalNinja

+0

So weit, so gut: aber Sie müssen die Funktion 5 mal aufrufen, einmal für jeden der 5 Werte, die Sie eingegeben haben, wie zum Beispiel 'graph (chart1);' und so weiter. Ändern Sie die Funktion (und ihren Prototyp) in einen "void" -Typ, ohne dass ein Wert zurückgegeben werden muss. Für den Anfang drucke einfach aus, wieviele Sterne, wie 'void graph (int numberOfAsterisks) {printf ("% d \ n ", numberOfAsterisks);}'. Dann tun Sie, was sie sagen, und machen Sie eine Schleife innerhalb der Funktion, um diese Anzahl von Sternchen (und eine "Newline") zu drucken. –

+0

Ich habe das Programm funktioniert ohne eine Funktion jetzt ist es nur eine Frage der Umwandlung, was ich habe, um ein Programm mit einer Funktion. – MissAnnThropic

Antwort

1

main ist auch eine Funktion, so dass Sie keine Probleme mit Funktionen haben.

Alles, was Sie jetzt tun müssen, ist Ihr Code zu setzen, die in Funktion wie diese Wiederholung ist:

void graph(int numberOfAsterisks) { 
    printf("1. %d| ", numberOfAsterisks); 
    for(i=0; i< numberOfAsterisks; i++) 
    { 
     printf("*"); 
    } 
} 

Und dann rufen Sie einfach graph(chart1) (zum Beispiel) in main.

+0

Perfekt! Wie kann ich meine Anzahl erhöhen? Ich habe herum gespielt und kann es nur erhalten, 1. auf jeder Linie zu zeigen – MissAnnThropic

+0

@MissAnnThropic benutzen globale Variable 'int cnt = 0', den Sie innerhalb der' graph' Funktion inkrementieren würden, und dann es drucken. Eine andere Möglichkeit besteht darin, den Zähler als lokale statische Variable innerhalb der 'graph'-Funktion zu haben ('static int cnt = 0'). –

Verwandte Themen