BY企鵝

C++基礎語法-5

複習

重複結構

//題目:請輸出1~n之間除了2和3的倍數的數字,且 0 < n < 2147483647

#include <iostream>
using namespace std;

int main(){
    int n;
    cin >> n;
    for(int i = 1 ; i <= n ; i++){
        if(i % 2 == 0 || i % 3 == 0){
            continue;
        }
        cout << i << ' ';
    }
    cout << endl;
    return 0;
}

重複結構

//題目:請設計一個密碼驗證程式,驗證使用者輸入的密碼是否正確
//保證密碼全都由數字組成,且 0 < 密碼 < 2147483647

#include <iostream>
using namespace std;

int main(){
    int password, correct = 12345678;
    cin >> password;
    while(password != correct){
        cout << "密碼錯誤,請重新輸入\n";
        cin >> password;
    }
    cout << "密碼正確\n";
    return 0;
}

重複結構

陣列

為什麼需要陣列?

題目:給定五個整數a1~a5,請以a5~a1的順序重新輸出

#include <iostream>
using namespace std;

int main(){
    int a1, a2, a3, a4, a5;
    cin >> a1 >> a2 >> a3 >> a4 >> a5;
    cout << a5 << ' ';
    cout << a4 << ' ';
    cout << a3 << ' ';
    cout << a2 << ' ';
    cout << a1 << '\n';
    return 0;
}

陣列 (array)

#include <iostream>
using namespace std;

int main(){
    int a[5];
    cin >> a[0];
    cin >> a[1];
    cin >> a[2];
    cin >> a[3];
    cin >> a[4];
    cout << a[4] << ' ';
    cout << a[3] << ' ';
    cout << a[2] << ' ';
    cout << a[1] << ' ';
    cout << a[0] << "\n";
    return 0;
}
  • 想像陣列是由很多有編號的變數所組成的

  • 宣告陣列名稱[元素數量]

  • 使用者可以用索引值去取值

  • a[n]中括號中的值表示元素的「索引值」,由0開始算起

  • 範例:int a[10];

  • 表示a[0]~a[9]

陣列 (array)

#include <iostream>
using namespace std;

int main(){
    int a[5];
    for(int i = 0 ; i < 5 ; i++){
        cin >> a[i];
        //1 2 3 4 5
    }
    for(int j = 4 ; j >= 0 ; j--){
        cout << a[j] << ' ';
        //5 4 3 2 1 
    }
    return 0;
}
  • 陣列可以配合for迴圈一起實作:

題目們

TOI新手組題解

Clay Pot Rice

#include <iostream>
using namespace std;

int main(){
    int T, G, W, E, B;
    while(cin >> T >> G >> W >> E >> B){
        int sum = 0;
        sum = (G + W + E + B);
        if(T >= sum){
            cout << sum << "\n";
        }
        else{
            cout << -1 << "\n";
        }
    }
    return 0;
}

BBQ

#include <iostream>
using namespace std;

int main(){
    int N, M, X, Y, A, B;
    while(cin >> N >> M >> X >> Y){
        A = (Y * M - N) / (Y - X);
        B = (X * M - N) / (X - Y);
        if((M == (A + B)) && (A > 0) && (B > 0)){
            cout << A << ' ' << B << "\n";
        }
        else{
            cout << "-1 -1\n";
        }
    }
    return 0;
}

Supermarket

#include <iostream>
using namespace std;

int main(){
    int a[3], temp;
    while(cin >> a[0] >> a[1] >> a[2]){
        int s[3] = {0}, min = 100000000, min_i;
        for(int i = 0 ; i < 3 ; i++){
            for(int k = 0 ; k < a[i] ; k++){
                if(k > 0){
                    s[i] += 2;
                }
                cin >> temp;
                s[i] += temp*3;
            }
            if(s[i] < min){
                min = s[i];
                min_i = i+1;
            }
        }
        cout << min_i << ' ' << min;
    }
    return 0;
}

結束啦~

C++基礎語法到此結束!

下一節會是月來上函式與遞迴~

回去要多練習題目喔!

C++中午小社第五堂

By d11130110周月蘅

C++中午小社第五堂

  • 456