Как присвоить возвращаемое значение из функции переменной

#c #function #cs50

#c #функция #cs50

Вопрос:

Я пытаюсь присвоить возвращаемое значение int leftPyramid(void); переменной left , чтобы я мог использовать printf для печати шаблона.

 #include <stdio.h>
#include <cs50.h>

int leftPyramid(void);

int main(void){
    int left;
  

Ниже приведен код, для int leftPyramid(void); которого создается следующий шаблон:

    #
  ##
 ###
####
  
 int leftPyramid(void);{
    for (int i = 1; i<=num_rows; i  ){
        for(int j=1; j<=num_rows-i; j  ){
            printf(" ");
            }
        for(int k= 1; k<=i; k  ){
            printf("#");
            }
        printf("n");
        }
  
}
  

Следующая строка вызывает ошибку, но я не могу понять, почему.

 left = int leftPyramid(void); //this line seems to be the problem.


int num_rows = get_int("height: n");
printf("%d", left);
  

Комментарии:

1. leftPyramid ничего не возвращает. Какое значение вы хотите left сохранить после вызова leftPyramid ? «Я пытаюсь присвоить int leftPyramid(void); левому, чтобы я мог использовать printf для печати шаблона».: функция уже печатает шаблон перед возвратом.

Ответ №1:

Это прототип вашей функции:

int leftPyramid(void);

для его вызова вам нужно

left = leftPyramid();

Когда вы исправите это, вы заметите проблему, упомянутую Carcigenicate в комментарии, т. Е. Вам придется возвращать что-то значимое из вашей функции. К сожалению, я понятия не имею, что это может быть, но это не часть вашего вопроса.

Комментарии:

1. Благодаря -carcigenicate и -yunnosch я понял, что мне нужно передать num_rows в leftPyramid . Как в void leftPyramid(int num_rows); Теперь это работает. Спасибо!

2. С удовольствием. Я рад, что вы также заметили и исправили странность управляющей переменной.