【问题标题】:How to assign a return value from function to a variable如何将函数的返回值分配给变量
【发布时间】:2020-11-04 19:02:27
【问题描述】:

我正在尝试将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);

【问题讨论】:

  • leftPyramid 不返回任何内容。在调用leftPyramid 之后,您希望left 保持什么值? “我正在尝试将 int leftPyramid(void); 分配给左侧,以便我可以使用 printf 打印模式。”:该函数在返回之前已经在打印模式。

标签: c function cs50


【解决方案1】:

这是你的函数的原型:

int leftPyramid(void);

为了调用它,你需要

left = leftPyramid();

当你修复这个问题时,你会注意到 Carcigenicate 在评论中提到的问题,即你必须从你的函数中返回一些有意义的东西。遗憾的是,我不知道那可能是什么,但这不是您问题的一部分。

【讨论】:

  • 感谢 -carcigenicate 和 -yunnosch 我发现我必须将 num_rows 传递给 leftPyramid。如 void leftPyramid(int num_rows);现在可以了。谢谢!
  • 我的荣幸。我很高兴您还发现并修复了控制变量的怪异之处。
猜你喜欢
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多