一个程序,用于打印用户使用函数输入的星号数,并将值传递给函数

时间:2016-11-16 20:37:22

标签: c function c-strings

我应得的任务的一部分。赋值状态 -

编写一个程序,用星号打印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");



}

1 个答案:

答案 0 :(得分:1)

main也是一个函数,因此您不会遇到函数问题。

您现在需要做的就是将您的代码重复到graph函数中,如下所示:

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

然后只需在graph(chart1)中致电main,例如)。