2016-04-11 22 views
0

入力された5つの整数を取り、その場所にアスタリスクを印刷するプログラムを作成しようとしています。変数を渡して出力する2番目の関数を作成する必要がありますが、1つの値しか渡せません。これは私が混乱しているところです。なぜなら、まだ配列を越えていないからです。それを終える可能性があると思いますか?誰でも私がこれに向かうべき方向を指摘していますか?C - 異なる関数に入力された変数を格納する

現在、これまでのところ、これを持っている:

int main() 
{ 
//Variables 
int counter = 1; 
int chart = 0; 
//I/O section for user input 
printf ("Please enter number of asterisks for 5 graphs, must be less than or equal to 50\n"); 
for (counter; counter <= 5; counter++) 
    { 
     do 
     { 
      printf("How long is chart %d? ", counter) ; 
      scanf("%d", &chart) ; 
     }while (chart > 50) ; 
    } 
} 

私はそれが別の関数に渡さなければならなかった知っていた前に、私はもともと、以下のようなものを持っていた:ここ

int main() 
{ 
//Variables 
    int chart1 ; 
    int chart2 ; 
    int chart3 ; 
    int chart4 ; 
    int chart5 ; 
//I/O section for user input 
    printf ("How long is chart 1? "); 
    scanf("%d", &chart1); 
    if (chart1 <= 50) 
    { 
     printf("\nPlease enter a number less than or equal to 50") ; 
    } 
    else 
    { 
    printf ("How long is chart 2? "); 
    scanf("%d", &chart2); 
    printf ("How long is chart 3? "); 
    scanf("%d", &chart3); 
    printf ("How long is chart 4? "); 
    scanf("%d", &chart4); 
    printf ("How long is chart 5? "); 
    scanf("%d", &chart5); 
    } 
//Chart 1 Print, loop, and counter 
     do 
     { 
     printf ("1. %d|", chart1); 
     for (chart1; chart1 >0; chart1--) 
     { 
      printf("*"); 
     } 
     } while(chart1 != 0); 
//Chart2 Print, loop, and counter 
    .... 
//Chart 3 Print, loop, and counter 
    .. 
//Chart 4 Print, loop, and counter 
    .. 
//Chart 5 print, loop, and counter 
    .. 
} 
+0

ご質問への答えをマークしてください可能性 – nullpointer

答えて

1

恐らくこれはあなたが見ているものかもしれません

あなたのメソッドの定義は、引数を使用して、アスタリスクを表示するforループを持つことができます
for (counter = 0; counter < 5; counter++) //notice changes here as well 
    { 
      printf("How long is chart %d? ", counter) ; 
      scanf("%d", &chart) ; 
      changeToAsterisk(chart); 
    } 

(ないまさにこのようなもの)::のためのグラム

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

私はインクリメント演算子のプレフィックスバージョン – Quest

1

あなたが渡すことができますどのようにされました関数への整数の配列:

#include <stdio.h> 

void print_array(int arr[]); 

int main() 
{ 
    int my_array[] = { 1, 2, 3, 4, 5 }; 

    print_array(my_array); 

    return 0; 
} 

void print_array(int arr[]) 
{ 
    int i; 

    for (i = 0; i < 5; ++i) 
     printf("%d ", arr[i]); 
    printf("\n"); 
} 
関連する問題