c++ while循环未开始
C++ while loop not starting
因此,我们的想法是向用户询问数组的每个元素,但是在为第一个问题(其中它询问元素的数量)输入之后,什么都没有发生。我不知道为什么。
#include <iostream>
int main()
{
int numGrades;
tryAgain:
std::cout << "Enter number of grades" << std::endl;
std::cin >> numGrades;
if (numGrades > 30)
{
std::cout << "Please enter a valid number of grades" << std::endl;
goto tryAgain;
}
int grades[numGrades - 1];
int gradeCount = 0;
while (gradeCount < numGrades);
{
std::cout << "Enter grade number" << gradeCount + 1 << ":";
std::cin >> grades[gradeCount];
++ gradeCount;
}
std::cout << grades;
return 0;
}
结构while (true);
表示while (true) {}
(即无限循环)。
所以,当你写
while (gradeCount < numGrades);
{
// ...
}
你有以下内容:
while (gradeCount < numGrades)
{
}
{
// ...
}
如果gradeCount < numGrades
.
您正在使用
while (gradeCount < numGrades);
在本行末尾加上分号(;),这样下一行将不会执行,因为条件总是为真,因为在各自的变量中没有自增或自减。
总之,去掉(;)
while (gradeCount < numGrades)
请看这段代码,问题很少。一种是while循环&另一个是打印grades
&grades
的内存分配。内存静态分配必须需要一个常数值。这里添加了一个动态分配,因为分数不是固定的或恒定的。下面是代码:
#include <iostream>
int main()
{
int numGrades;
tryAgain:
std::cout << "Enter number of grades" << std::endl;
std::cin >> numGrades;
if (numGrades > 30)
{
std::cout << "Please enter a valid number of grades" << std::endl;
goto tryAgain;
}
int *grades = (int *)malloc(numGrades * sizeof(int)); //allocating dynamic memory
int gradeCount = 0;
while (gradeCount < numGrades)
{
std::cout << "Enter grade number" << gradeCount + 1 << ":";
std::cin >> grades[gradeCount];
++ gradeCount;
}
for(int i =0;i<numGrades;i++)
{
std::cout << grades[i] << std::endl;
}
free(grades);//releasing memory
return 0;
}
相关文章:
- 正在尝试循环回到开始以再次运行我的程序
- 如何创建一个循环,该循环检查每次迭代并在每次迭代后从头开始
- 是否可以在基于范围的 for 循环中使用模板化的开始/结束方法
- C++循环链表删除,计数从下一个节点开始
- 循环,使程序从头开始
- 基于循环的C ISTRINGSTREAM范围没有开始成员
- 如何使用迭代器实现从序列的中间到开始的循环
- for 循环不会从 i = 0 开始
- C++For循环索引行为怪异(它从3而不是0开始)
- 在开始和结束条件下切换for循环
- C++ 使用 while 循环读取文件,从第 "x" 行开始
- 中途开始循环
- C ::P在循环开始结束时发出声音循环声音
- 虽然循环未启动显示 5,但从输入开始,C++
- 虽然开始双骰子程序的循环未正确执行
- 开始地址无限循环
- 从头开始在程序集中编写 for 循环
- for 循环构造从 C++ 程序开始
- 重新开始循环 c++
- 如何编写一个c++数组打印循环,每次迭代从不同的点开始