在我的书中对以下程序的分析中,"在此示例中,修改了包含用户发送的编号的输入参数。如果你需要两个值,原始和正方形,你可以让函数接受两个参数:一个包含输入,另一个包含正方形。"
#include <iostream>
using namespace std;
void ReturnSquare(int& Number)
{
Number *= Number;
}
int main()
{
cout<< "enter a number you wish to square: ";
int Number = 0;
cin>> Number;
ReturnSquare(Number);
cout<< "square is: " << Number <<endl;
cout<< "press enter to continue..." <<endl;
cin.ignore(10, '\n');
cin.get();
return 0;
}
我对这个编译和运行正常的程序进行了相当广泛的修改,但是我是否展示了这本书要求我正确使用的内容?请帮助我,我才刚开始。修改如下:
#include <iostream>
using namespace std;
void ReturnSquare(int& Number, int Number2)
{
cout<< "do you wish to add number ?...(y/n) ";
char CalcCircum = 'n';
cin>> CalcCircum;
if (CalcCircum == 'n' || 'y')
Number *= Number;
if (CalcCircum =='y')
cout<< "addition of number is..." << Number2 + Number2 <<endl;
}
int main()
{
cout<< "enter a number you wish to square: ";
int Number = 0;
cin>> Number;
ReturnSquare(Number, Number);
cout<< "square is: " << Number <<endl;
cout<< "press enter to continue..." <<endl;
cin.ignore(10, '\n');
cin.get();
return 0;
}
请告诉我,正如我怀疑的那样,我经验丰富的经验不足的思想出了问题。谢谢大家,真诚的newmanadam
答案 0 :(得分:0)
该练习要求以非常规的方式返回一个值。
void calc(int argument, int& returnValue){
returnValue = argument * argument; }
你必须以一种奇怪的方式称呼它:
int returnValue;
int square = 17;
calc(square, returnValue);
std::cout << returnValue;
您可能会在控制台上看到289。
答案 1 :(得分:0)
你让它变得复杂得多。将功能更改为:
void ReturnSquare(int in, int& out)
{
out = in*in;
}
然后将main
更改为:
int main()
{
cout<< "enter a number you wish to square: ";
int messaround = 0;
cin>> messaround;
int sq;
ReturnSquare(messaround, sq);
cout<< "original number is: " << messaround <<endl;
cout<< "square is: " << sq <<endl;
cout<< "press enter to continue..." <<endl;
cin.ignore(10, '\n');
cin.get();
return 0;
}
答案 2 :(得分:-1)
我修改后的问题程序的这个非常小的变化也有效,并且可能稍微更具可读性。变化如下:
var userChoice = Convert.ToInt32(Console.ReadLine());
switch (userChoice){
case "4":
Console.WriteLine("4.) Back");
break;
}
非常感谢你们。新手程序员非常尊重(但希望明年这个时候不会这样)。所有同道人员的和平,真诚地,纽曼纳丹