2016-11-16 3 views
0

割り当ての一部です。割り当て状況 -ユーザーが関数を使用して値を関数に渡し、アスタリスクの数を出力するプログラム

5つの棒グラフをアスタリスクで印刷するプログラムを作成します。グラフを印刷するには、長さ(アスタリスクの数)を受け入れる関数を作成し、次に5回呼び出す必要があります。入力の検証を使用して、ユーザーが50以下の正の数を入力していることを確認します。印刷するアスタリスクの量を表す整数値を受け入れる関数を作成します。関数には1つの値しか渡されません。関数内のforループを使用して、関数に渡された数値に対応するアスタリスクの数を出力してください。

これまではこれがありましたが、機能に関してはかなり苦労しています。私は次のステップが何であるか、そしてユーザーが入力したアスタリスクの数をどのように印刷するのかは不明です。

ありがとうございました。私は単なる学生です!

#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

「棒グラフ」を隣り合わせに印刷するか、各入力直後に印刷する必要がありますか?配列を学んだことはありますか? – DigitalNinja

+0

これまでのところ良いことですが、 'graph(chart1);などの5つの値のそれぞれに対して5回、関数を5回呼び出す必要があります。関数(とそのプロトタイプ)を 'void '型に変更し、値を返す必要はありません。初心者のために 'void graph(int numberOfAsterisks){printf("%d \ n "、numberOfAsterisks);}'のようなアスタリスクをいくつでも出力するだけです。次に、彼らが言うようにして、その数のアスタリスク(と改行)を印刷するために関数の中でループを作ります。 –

+0

私は、関数を使用せずにプログラムを動作させましたが、関数を使ってプログラムに変換しただけです。 – MissAnnThropic

答えて

1

mainも機能であるため、機能に問題はありません。

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

をそしてちょうどmainに(たとえば用graph(chart1)を呼び出します。

あなたが今やらなければならないこと

は次のように関数に繰り返していますあなたのコードを入れています。

+0

パーフェクト!私のカウントを増やすにはどうすればいいですか?私は遊んでいて、各行に1を表示するようにしかできません。 – MissAnnThropic

+0

@MissAnnThropicは、 'graph'関数内でインクリメントするグローバル変数' int cnt = 0'を使い、それを出力します。他のオプションは、 'graph'関数内に局所静的変数としてのカウンタを持つことです(' static int cnt = 0')。 –

関連する問題