C++ 中的 for 循环不执行
For loop in c++ doesn't execute
我正在写一个非常基本的程序,它创建一个2D数组,打印一次,对它进行一些操作,然后第二次打印。问题是,它只打印一次。。。。代码如下:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
const int n=3;
int A[n][n];
int a, b;
do{
cin>>a>>b;}
while (a>=b);
for(int iw=0;iw<n;iw++) {
for(int ik=0;ik<n;ik++) {
A[iw][ik]=(rand()%(b-a))+a;
}
}
for(int iw=0;iw<n;iw++){
for(int ik=0;ik<n;ik++){
cout<<A[iw][ik]<<'t';
}
cout<<'n';
}
double sredniad, srednia;
double sumad=0, sumag=0;
int nd=0, ng=0;
for(int i=0,iw=0;iw<n;iw++,i++){
for(int ik=0;ik<n;ik++){
if(ik!=(n-1-i)){
if(ik>(n-1-i)){
sumad=sumad+A[iw][ik];
nd++;
}
if(ik<(n-1-i)){
sumag=sumag+A[iw][ik];
ng++;
}
}
}
}
sredniad=sumad/nd;
srednia=(sumad+sumag)/(nd+ng);
while(sredniad<srednia){
int max=a, min=b, wmax=0, wmin=0, kmax=0, kmin=0;
for(int iw=0;iw<n-1;iw++){
for(int i=0, ik=0;ik<n-1-i;iw++, i++){
if (A[iw][ik]>max){
max=A[iw][ik];
wmax=iw;
kmax=ik;
}
if (A[iw][ik]<min){
min=A[iw][ik];
wmin=iw;
kmin=ik;
}
}
}
A[wmax][kmax]=min;
A[wmin][kmin]=max;
sumad=sumad-min+max;
sumag=sumag-max+min;
}
for(int iw=0;iw<n;iw++){
for(int ik=0;ik<n;ik++){
cout<<A[iw][ik]<<'t';
}
cout<<'n';
}
return 0;
}
检查此条件:
while(sredniad<srednia){
如果这是真的,它也永远不会改变,你处于一个无限循环中。
相关文章:
- 在映射擦除c++期间执行循环的次数
- C++-For循环未执行
- 未在函数C++中执行的循环
- 为什么切换 for 循环的顺序会显著改变执行时间?
- 将执行循环拆分为多个线程 (1-N-1-N-1..)
- 在类 c++ 中执行 while 循环
- C++ - 使用用户输入的字符串数据检查结构字符串数据(无限执行 while 循环)
- 如何仅在父循环的所有迭代都为真时才执行嵌套的 if 语句?
- 在"0"输入停止循环之前正确执行 while 循环?
- 为什么其中一个 while 循环没有被执行 (C++)?
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 需要帮助转换以执行循环
- 在CIN为真后,使用一段时间循环,然后执行循环
- 为什么要执行循环五次并停止
- 如何为回调执行循环 (C++)
- 执行循环,直到系统时间到达特定日期/时间
- 如何在执行循环(C++)时使间隔为秒
- C++菜单的“执行”循环.测试大写和小写:
- ICC 未执行循环不变代码移动
- 程序不执行循环