【发布时间】:2020-08-21 12:52:00
【问题描述】:
我正在尝试创建一个函数,该函数将接收用户的输入并创建一个倒三角形。但是,我在函数末尾(第 29 行)收到一个错误,指出“控制到达非 void 函数的末尾。”
我认为这与返回值有关,但我不确定。此外,当我将函数内的int number 更改为int num 时,我收到一条错误消息,提示“重新定义'num'。”
请帮忙。解释发生了什么错误以及如何修复它。
谢谢。
#include <iostream>
using namespace std;
int row(int num)
{
int number;
int decreasedNumber;
for(int i = number; i >= 0; i -= 2)
{
decreasedNumber = i;
//decreased number from the outer loop will decrease once again
for(int j = decreasedNumber; decreasedNumber >= 0; decreasedNumber -=2)
{
cout << decreasedNumber << " ";
}
cout << endl;
}
}
int main()
{
//Prompting the user to enter a number and collect that input
cout << "Enter a number: " << endl;
cin >> number;
cout << row(number);
return 0;
}
【问题讨论】:
-
函数row中的
return在哪里,其签名表明它返回int,预计在cout << row(number);中? -
numberinrow()未初始化使用,num从未使用过。 -
在
for(int j = decreasedNumber; decreasedNumber >= 0; decreasedNumber -=2)变量j没有被使用,你确定这是你想要的吗? -
虽然这是一个非常基本的问题,它表明您缺乏语言的基本知识,您绝对应该通过阅读 good book 来解决这个问题,但我必须赞扬您的答案的良好整体结构,包括 propper代码缩进,这是我看到的比我想要的要少的东西。
-
不过,我必须说,最好解释一下您想通过该程序实现的目标,这可能会为您提供更好的答案。