我修改了以下C ++程序,但我是否正确?

时间:2015-12-28 20:03:10

标签: c++

在我的书中对以下程序的分析中,"在此示例中,修改了包含用户发送的编号的输入参数。如果你需要两个值,原始和正方形,你可以让函数接受两个参数:一个包含输入,另一个包含正方形。"

 #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

3 个答案:

答案 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;
 }

非常感谢你们。新手程序员非常尊重(但希望明年这个时候不会这样)。所有同道人员的和平,真诚地,纽曼纳丹