#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. С удовольствием. Я рад, что вы также заметили и исправили странность управляющей переменной.