我的循环不会循环
My loop won't loop
我有一个作业,我们必须编写代码来找到适合四个参数的数字。我的想法是将该数字拆分为单独的数字,然后有一个 if 语句来检查该数字是否符合参数。如果没有,我希望它增加一个并循环直到它找到数字。但是,我的循环只运行一次,甚至不返回所有四位数字。关于我应该做什么的任何指示将不胜感激。
#include <iostream>
using namespace std;
int digit_breakdown(int& number);
int main()
{
int number = 1000; //This is the variable I will change to find the secret number
int last_dig, third_dig, sec_dig, first_dig; // These are variables that represent each of the four digits
int secret_number = 0; //This variable holds the secret number
do{
number++;
last_dig = number%10; //This series of code breaks up the number into digits
number /= 10;
third_dig = number%10;
number /= 10;
sec_dig = number%10;
number /= 10;
first_dig = number%10;
number /=10;
if((first_dig != sec_dig) && (first_dig != third_dig) && (first_dig != last_dig) && (sec_dig != third_dig) && (sec_dig != last$
number = secret_number;
}while((secret_number = 0));
cout << "You found the secret number! That number is " << secret_number;
cout << last_dig << endl;
cout << third_dig << endl;
cout << sec_dig << endl;
cout << first_dig << endl;
}
我已经根据给出的问题陈述更改了逻辑和一些陈述。即使您将按照建议更改 while 循环条件,也不会获得确切的输出。
所以变化是。
A) secret_number在循环开始时分配并保存递增的数字
B) 对变量进行修改操作secret_number
C) 满足条件后使用"中断"。(因为你得到了你的秘密号码)
E)因为你的条件是无穷无尽的,直到你找到一个所需的数字,将循环更改为while(1)[这是可选的,你可以将其设置为某个上限]
F) 显示数字本身。
下面是代码详细信息。
#include <iostream>
using namespace std;
int digit_breakdown(int& number);
int main()
{
int number = 1000; //This is the variable I will change to find the secret number
int last_dig, third_dig, sec_dig, first_dig; // These are variables that represent each of the four digits
int secret_number = 0; //This variable holds the secret number
do{
secret_number = ++number;
last_dig = secret_number%10; //This series of code breaks up the number into digits
secret_number /= 10;
third_dig = secret_number%10;
secret_number /= 10;
sec_dig = secret_number%10;
secret_number /= 10;
first_dig = secret_number%10;
secret_number /=10;
if((first_dig != sec_dig) && (first_dig != third_dig) && (first_dig != last_dig) && (sec_dig != third_dig) && (sec_dig != last_dig)){
break;
}
}while(1); //To avoid endless loop you can set some upper_limit
cout << "You found the secret number! That number is " << number<<endl;
cout << last_dig << endl;
cout << third_dig << endl;
cout << sec_dig << endl;
cout << first_dig << endl;
return 0;
}
输出如下:
/WorkDir/checks/stackover> vi loop_digit.cpp
/WorkDir/checks/stackover> g++ -Wall -Wextra -O2 -o loop_digit loop_digit.cpp
/WorkDir/checks/stackover> ./loop_digit
You found the secret number! That number is 1022
2
2
0
1
更改
while((secret_number = 0));
自
while(secret_number == 0);
单=
是一个赋值运算符,为了进行比较,您需要==
在while loop
内部if-statement
条件之一中还有一个$
标志,您可能需要纠正。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么我的for循环不能正确获取argv
- 为什么我无法更改"set<set>"循环中的值<int>
- 为什么我的程序在for循环中k=0时返回垃圾值
- 我的代码运行良好,但在游戏循环中中断
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?
- 为什么我的 scanf() 没有在我的数组上迭代我的 for 循环?
- C++:我的开关盒循环转到第一种情况
- 我正在尝试创建一个菜单,但我的代码一直在循环
- C++初学者:为什么我的编译器根据我的循环返回"name not found"?
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 为什么当我输入一个被接受的数字时,我的 do-while 循环没有中断?
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 为什么我的 Do-while 循环无法在C++中运行菜单
- 是什么导致我的循环在第一次迭代中运行得更慢
- 为什么我的 for 循环给出错误:X 没有命名类型
- 为什么我的代码在 c++ 中无限循环.我的代码需要反复提示用户
- 无法通过字符串循环我的程序以将其从英语翻译成猪拉丁语
- 如何循环我的程序
- 有人能帮我循环我的程序吗(GAUSS SEIDEL METHOD)