C 矢量不能输出

c++ vector cant output

本文关键字:输出 不能      更新时间:2023-10-16

hi im im to c ,目前试图使用向量,因此我编写了一个代码来查找所有质量数字,直到我尝试用cout输出它的给定极限,并且它奏效了,所以问题是问题,所以问题是矢量。

#include <iostream>
#include <vector>
using  namespace std;
int main(){
    int limit,x,i,j;
    vector<int> PrimeNumbers;
    cin >> limit;   
    for(i = 1;i<limit;i++){
        for(j = 1;j<=i;j++){
            if(i%j == 0){
                x++;    
            }
        }
        if(x == 2){
            PrimeNumbers.push_back(i);  
        }
        j = 0;
        x = 0;
    }   
    for(int a = 0;a<PrimeNumbers.size();a++){
        cout <<PrimeNumbers[i] << endl;
    }
}

那么,当ı运行时,我只能得到一堆零。

代码有几个问题

第一个是您永远不会使 x屈服,所以要修复 x = 0

另一个问题是您在最后打印索引[i],而不是[a]

更改这些应该解决您的问题。

,由于您不会在循环外使用ij,因此您应该在for LOOP

中声明它们
int limit;
int x = 0;
....
for(int i = 1;i<limit;i++){
    for(int j = 1;j<=i;j++){
     ...
    }
}

那么,应该很明显这样做是错误的(在这种情况下将生成编译器错误,因为i未在for循环外定义(

for(int a = 0;a<PrimeNumbers.size();a++){
   cout <<PrimeNumbers[i] << endl; // should be a now, i no longer exists
}