.诗 2021-07-20 16:18 采纳率: 58.2%
浏览 30
已结题

一个关于c++循环的问题?


#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;
}
    

img

两次结果不一样?
错在哪里了?

  • 写回答

2条回答 默认 最新

  • 浪客 2021-07-20 16:41
    关注

    数组大小未知,用动态数组比较好使。

    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月20日
  • 已采纳回答 7月20日
  • 创建了问题 7月20日