#28792: 請問#2 #5 #6 測資


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
c508. 去蟲 | From: [27.247.194.201] | 發表日期 : 2022-01-03 21:49

#include <iostream>

using namespace std;

void check(int[], int);

void reverse(int[], int);

int main(void)

{

    int n;

    int num[100001];

    while (cin >> n)

    {

        for (int i = 0; i < n; i++)

        {

            cin >> num[i];

        }

 

        check(num, n);

 

        for (int i = 0; i < n; i++)

        {

            cout << num[i] << " ";

        }

 

        cout << endl;

        reverse(num, n);

        

        for (int i = 0; i < n; i++)

        {

            if (num[i] != num[i + 1])

            {

                cout << num[i] << " ";

            }

        }

        cout << endl;

    }

    return 0;

}

 

void check(int num[], int n)

{

    long long int temp;

    for (int i = 0; i < n; i++)

    {

        for (int j = 0; j < n; j++)

        {

            if (num[i] < num[j])

            {

                temp = num[i];

                num[i] = num[j];

                num[j] = temp;

            }

        }

    }

    return;

}

 

void reverse(int num[], int n)

{

    long long int temp;

    for (int i = 0; i < (n / 2); i++)

    {

        temp = num[i];

        num[i] = num[n - i - 1];

        num[n - i - 1] = temp;

    }

    return;

}

 
#28793: Re:請問#2 #5 #6 測資


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
c508. 去蟲 | From: [27.247.194.201] | 發表日期 : 2022-01-03 21:52

#include

using namespace std;

void check(int[], int);

void reverse(int[], int);

int main(void)

{

    int n;

    int num[100001];

    while (cin >> n)

    {

        for (int i = 0; i < n; i++)

        {

            cin >> num[i];

        }

 

        check(num, n);

 

        for (int i = 0; i < n; i++)

        {

            cout << num[i] << " ";

        }

 

        cout << endl;

        reverse(num, n);

        

        for (int i = 0; i < n; i++)

        {

            if (num[i] != num[i + 1])

            {

                cout << num[i] << " ";

            }

        }

        cout << endl;

    }

    return 0;

}

 

void check(int num[], int n)

{

    long long int temp;

    for (int i = 0; i < n; i++)

    {

        for (int j = 0; j < n; j++)

        {

            if (num[i] < num[j])

            {

                temp = num[i];

                num[i] = num[j];

                num[j] = temp;

            }

        }

    }

    return;

}

 

void reverse(int num[], int n)

{

    long long int temp;

    for (int i = 0; i < (n / 2); i++)

    {

        temp = num[i];

        num[i] = num[n - i - 1];

        num[n - i - 1] = temp;

    }

    return;

}


#2 #5 #6測資過不去

不知道哪邊出了問題 

目前只知道好像是reverse那邊有問題(從測試結果來看)

請各位大神指點 感謝!

 
#28799: Re:請問#2 #5 #6 測資


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
c508. 去蟲 | From: [39.10.69.93] | 發表日期 : 2022-01-04 19:30


        for (int i = 0; i < n; i++)

        {

            if (num[i] != num[i + 1])


當i等於n-1的時候,會變成if (num[n-1] != num[n]),可是你的陣列只輸入到n-1而已,可能會造成最後一個數字沒有輸出。

另外你排序的作法效率不高,會TLE,其實可以用內建的sort()就好了

 
#28818: Re:請問#2 #5 #6 測資


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
c508. 去蟲 | From: [110.28.5.201] | 發表日期 : 2022-01-05 22:01


        for (int i = 0; i < n; i++)

        {

            if (num[i] != num[i + 1])


當i等於n-1的時候,會變成if (num[n-1] != num[n]),可是你的陣列只輸入到n-1而已,可能會造成最後一個數字沒有輸出。

另外你排序的作法效率不高,會TLE,其實可以用內建的sort()就好了

原來

感謝大佬!

終於AC啦!~~

#include <iostream>

#include <algorithm>

using namespace std;

int main(void)

{

    int n;

    int num[100001];

    while (cin >> n)

    {

        for (int i = 0; i < n; i++)

        {

            cin >> num[i];

        }

 

        sort(num, num + n);

 

        for (int i = 0; i < n; i++)

        {

            cout << num[i] << " ";

        }

 

        cout << endl;

        

        for (int i = n - 1; i >= 0; i--)

        {

            if (num[i] != num[i - 1])

            {

                cout << num[i] << " ";

            }

        }

        cout << endl;

    }

    return 0;

}

 

 

 
ZeroJudge Forum