我在我的教科书中有这个例子,我想用任何循环方法解决它

时间:2015-12-12 15:24:57

标签: c++

我的教科书中有一个示例,其中包含以下代码和输入 / *一个程序,它取一个用户的四位整数,并显示数字 单独屏幕,即如果用户输入7531,则分别显示7,5,3,1。 * /

#include <iostream.h>
main()
{
// declare variables
int number, digit;
// prompt the user for input
cout << "Please enter 4-digit number:";
cin >> number;
// get the first digit and display it on screen
digit = number % 10;
cout << "The digits are: ";
cout << digit << ", ";
// get the remaining three digits number
number = number / 10;
// get the next digit and display it
digit = number % 10;
cout << digit << ", ";
// get the remaining two digits number
number = number / 10;
// get the next digit and display it
digit = number % 10;
cout << digit << ", ";
// get the remaining one digit number
number = number / 10;
// get the next digit and display it
digit = number % 10;
cout << digit;
}

以下给出了上述程序的样本输出。 请输入4位数字:5678 数字为:8,7,6,5

如何用循环方法解决它。

4 个答案:

答案 0 :(得分:1)

循环执行相同的代码段零次或多次,具体取决于循环的条件。

如果你仔细检查你的代码,你会看到你重复基本相同的代码,四次:计算除法的余数为10,整数除以10,以及一些输出。

因此,简单地编写一个执行相同精确代码的循环似乎是合乎逻辑的,它只执行这些操作,但让循环执行这部分代码四次。

这就是你如何做到的。

答案 1 :(得分:0)

首先,您需要识别部分代码,这些代码会重复更多次并且代码放入某个循环(for,while,do-while)并声明它将执行多少次,主要是一些bool表达式。在你的情况下,你需要放入for,while或do-while循环的这部分代码:
digit = number % 10;
cout << digit << ", ";
number = number / 10;

例如:

for(int i=0;i<4;i++){
    digit = number % 10;
    if(i!=3)
        cout << digit << ", ";
    else
        cout << digit;

    number = number / 10;
}

答案 2 :(得分:0)

获得等效输出您可以使用例如do-while循环

cout << "The digits are: ";

do
{
    cout << number % 10;
} while ( ( number /= 10 ) && cout << ", " );

或者

do
{
    cout << number % 10;

    number /= 10;

    if ( number ) cout << ", ";
} while ( number );

如果您想要输出正好四位数,只要该数字确实有四位数,那么您可以写

int i = 0;
do
{
    cout << number % 10;

    number /= 10;

    if ( number ) cout << ", ";
} while ( ++i < 4 && number );

答案 3 :(得分:0)

您是否需要对整数执行除法?如果您将用户的输入作为字符串接受,则可以简单地迭代包含的字符,例如

string val;
cin >> val;
int len = val.length();

for(int i = len-1; i >= 0; --i){
  cout << val[i]<<",";
}

当然,如果你事先知道了数字,你可以使用int

轻松完成
int val;
cin >> val;

for(int i = 0; i < 4; ++i){
  int digit = val % 10;
  val /= 10;
  cout << digit << ",";
}

如果您需要扩展解决方案以覆盖任意长度的int,则需要使用具有此条件的while循环

while(val > 0){
      int digit = val % 10;
      val /= 10;
      cout << digit << ",";
}