C++ 中的 for 循环不执行

For loop in c++ doesn't execute

本文关键字:执行 循环 for 中的 C++      更新时间:2023-10-16

我正在写一个非常基本的程序,它创建一个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){

如果这是真的,它也永远不会改变,你处于一个无限循环中。