本题用到了vector,和vector相关的一些函数,注意解题、输出的细节
#include <iostream> #include <vector> #include <cstdio> #include <string> using namespace std; int main() { //由于要存储到最后用来输出的“数组”是动态增长的,所以用vector vector<int> Evec; //完数 vector<int> Gvec; //盈数 for(int num = 2;num<=60;num++){ int sum = 0; for(int i = 1;i<num;i++){ //注意这里因子1仍要算进去,题目只排除了该数本身 if(num%i == 0){ sum += i; } } if(sum == num){ Evec.push_back(num); //push_back()的使用 } else if(sum > num){ Gvec.push_back(num); } } //注意输出格式 printf("E:"); //使用迭代器(可以理解为指针)访问,输出时要加* //访问vector元素也可以使用下标vector[i]和vector.size() for(vector<int>::iterator it1 = Evec.begin();it1 != Evec.end();it1++){ printf(" %d",*it1); } printf("\n"); printf("G:"); for(vector<int>::iterator it2 = Gvec.begin();it2 != Gvec.end();it2++){ printf(" %d",*it2); } printf("\n"); }