程序没有进入FOR循环

Program is not entering into FOR loop

本文关键字:FOR 循环 程序      更新时间:2023-10-16

我不知道为什么,但是程序没有进入FOR循环。我是全新的编程,所以请避免任何错误,如果有。非常感谢你的帮助。

这个问题来自一个编码网站::

给你一个N人参加ACM-ICPC世界总决赛的名单。他们每个人要么精通一个话题,要么不是。找出一个2人小组可以知道的最大题目数。并找出有多少团队可以知道主题的最大数量?

输入格式

第一行包含两个整数N和M,中间用一个空格分隔,其中N表示人数,M表示话题数。接下来是N行。每行包含一个长度为m的二进制字符串,其中1表示第i个人知道某个特定主题,0表示第i个人不知道该主题。

输出格式

在第一行,打印2人团队可以知道的最大主题数。在第二行,打印可以知道最大题目数的团队数量。

的约束
2 ≤ N ≤ 500 
1 ≤ M ≤ 500
样本输入

4 5
10101
11100
11010
00101

的示例输出
5
2

下面是我的代码::

#include<iostream>
using namespace std;
int main(){
    int N,M;
    cin>>N>>M;
    if(N>=2 && N<=500 && M>=1 && M<=500){
        int x= (N*(N-1))/2;
        int i,j,k;
        int Topic[x];
        for(i=0;i<x;i++){
            Topic[i]=0;
        }
        int y= N*M;
        int a;
        char Array[y];
        while(N--){
            for(i=0;i<M;i++){   
                cin>>Array[a];
                a++;
            }  
          }
        int count;
        int d=0;
        int l=N-1;
        // This FOR LOOP ..
        **for(int p=0;p<l;p++){             
            for(int q=p+1;q<N;q++){
                count=0;
                for(k=0;k<M;k++){
                    int temp=k+(q*M);
                    int temp1=k+(p*M);
                    if(Array[temp]+Array[temp1]!=0){
                        count+=1;
                    }
                }
                Topic[d]=count;
                d++;
            }
        }**
        int max=Topic[0];
        int counter=0;
        for(i=0;i<x;i++){
            if(max>Topic[i]){
                 max=Topic[i];  
                 counter=1;
            }
            else if(Topic[i+1]=Topic[i]){
                counter+=1;
            }
         }
     cout<<max<<endl;
     cout<<counter;
    }
    return 0;
}

你有一个从N计数到0的循环:

while (N--) {
  // ...
}

然后将l设置为N - 1,也就是说-1:

int l = N - 1;

那么你的for循环想要运行,而p < lp最初是0, l最初是-1,所以循环永远不会运行:

for ( int p = 0; p < l; p++ ) {
  // ...
}