#include<iostream>
using namespace std;
int main() {
int n, i;
int arr[100];
int prr[100];
int count=0;
while (cin >> n) {
int b = 0;
for (i = 0; i < n; i++) {
cin >> arr[i];
}
for (i = 0; i < n;) {
if (arr[i] % 2 == 0) {
cout << arr[i] << endl;
}
else {
prr[b] = arr[i];
count++;
b++;
}
i++;
}
for (b = 0; b < count; b++) {
cout << prr[b] << endl;
}
}
return 0;
}
两次结果不一样?
错在哪里了?
数组大小未知,用动态数组比较好使。
#include<iostream>
using namespace std;
int main() {
int n, i;
int *arr;//
int *prr;//
int count=0;
while (cin >> n) {
//int b = 0;
arr=new int[n];//
prr=new int[n];//
for (i = 0; i < n; i++) {
cin >> arr[i];
}
count=0;/////
for (i = 0; i < n;i++) {//
if (arr[i] % 2 == 0) {
cout << arr[i] << endl;
}
else {
//prr[b] = arr[i];
prr[count] = arr[i];
count++;
//b++;
}
//i++;
}
//for (b = 0; b < count; b++) {
for ( i = 0; i < count; i++) {
cout << prr[i] << endl;//
}
cout << endl;//
delete[] arr;//
delete[] prr;//
}
return 0;
}
每次循环开始时,count值没有初始化,导致不断累加