帮忙看看一道数组简单题
题目是:输入一个整数K,然后再输入K个整数。要求把这K个整数装进一个数组,然后选出其中的偶数,按照数组编号的倒叙输出,最后再输出偶数的个数N。eg.
input:5 3 6 4 2 1
output:2 4 6 3
以下是我写的程序,没找到问题在哪,所以来求助qaq
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;//之后要接收n个整数
int a;//接收input的数组
int save[]={0};//存放偶数的数组
int save_count=0;//用来充当偶数数组索引&计数偶数个数的变量
for(int i=0;i<n;i++)
{
cin>>a;
if(a%2==0)//如果是偶数,那就装进save[]数组中,并且save_count++
{
save=a;
save_count++;
}
}
for(int i=save_count-1;i>=0;i--)//设计的倒叙输出
{
cout<<save;
}
cout<<save_count;//输出偶数个数
return 0;
} 不定长数组就选用 vector,是 C++ 特有的动态数组类型,类似于 Python 的列表一样,可变长数组:#include <iostream>
#include <vector>
using std::cin, std::cout, std::endl, std::vector;
int main() {
int K, N = 0, num;
vector<int> arr; // 这里用 vector,STL vector 是可变长的动态数组
cin >> K;
while (K--) {
cin >> num;
arr.push_back(num); // 把这 K 个整数装进一个数组
}
for (vector<int>::iterator p = arr.end() - 1; p != arr.begin(); p--) { // 然后选出其中的偶数,按照数组编号的倒叙输出
if (!(*p & 1)) {
cout << *p << " ";
N++;
}
}
cout << N << endl; // 最后再输出偶数的个数N
return 0;
} 貌似老编译器不接受int a;//接收input的数组
这样写法,这属于动态数组 本帖最后由 jhq999 于 2022-4-15 09:48 编辑
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;//之后要接收n个整数
int a;//接收input的数组
// int save[]={0};///////////////////////////////////////////////////////没必要用动态数组
int save_count=0;//用来充当偶数数组索引&计数偶数个数的变量
for(int i=0;i<n;i++)
{
cin>>a;///////////////
if(a%2==0)/////////确定一个偶数下标加一
{
///////////////////////save=a;
save_count++;
}
}
for(int i=save_count-1;i>=0;i--)//设计的倒叙输出
{
cout<<a;/////////////////////
}
cout<<save_count;//输出偶数个数
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;//之后要接收n个整数
int a;//接收input的数组
// int save[]={0};///////////////////////////////////////////////////////没必要用动态数组
int save_count=0;//用来充当偶数数组索引&计数偶数个数的变量
for(;n>0;n--)
{
cin>>a;///////////////
if(a%2==0)/////////确定一个偶数下标加一
{
///////////////////////save=a;
save_count++;
}
}
for(n=save_count-1;n>=0;n--)//设计的倒叙输出
{
cout<<a;/////////////////////
}
cout<<save_count;//输出偶数个数
return 0;
}
傻眼貓咪 发表于 2022-4-15 09:43
不定长数组就选用 vector,是 C++ 特有的动态数组类型,类似于 Python 的列表一样,可变长数组:
啊,这个还没有学过耶,有没有办法修改一下我本来的程序,让他变得可行呀...我觉得我的思路很简单呀,选出偶数装进另一个数组,这一步不好实现吗? jhq999 发表于 2022-4-15 09:40
请问是int a是动态数组,还是int save[]是呀。这样做的问题是什么呀..感谢! 本帖最后由 jhq999 于 2022-4-15 12:17 编辑
猫皇 发表于 2022-4-15 12:06
请问是int a是动态数组,还是int save[]是呀。这样做的问题是什么呀..感谢!
都是,我说错了
其实我的这个程序是可以运行的。
比如我输入5 1 2 3 4 5
他是可以输出4 2 2的
但是问题在于我也不知道为什么,有的就不对
比如输入5 2 4 6 8 10
他就会卡死在那里
还有比如输入10 1 2 3 4 5 6 7 8 9 4
输出的是8 6 4 2 4
最后一个输入的4不见了
问题到底在哪啊,是动态数组的问题吗 猫皇 发表于 2022-4-15 12:17
其实我的这个程序是可以运行的。
比如我输入5 1 2 3 4 5
他是可以输出4 2 2的
刚才用静态数组试了一下,没有问题
要不然你麻烦一点用
int *a=(int*)malloc(n*sizeof(int));
别忘了不用了free(a);
或者vs里用int *a=new int[;
别忘了不用了delete[] a;
int save[]={0};//存放偶数的数组
这个地方有问题,这个数组只能存储一个元素
页:
[1]