情報オリンピックワンパス1.5:アレイ(1)

C ++言語の最初の部分

第5章配列

最初の1次元配列

1102指定した番号と同じ番号の番号

#include <iostream>
using namespace std;

int main() {
    int n, m, a[105], cnt = 0;
    cin >> n;

    for (int i = 0; i < n; i ++ ) cin >> a[i];

    cin >> m;

    for (int i = 0; i < n; i ++ ) {
        if (a[i] == m) cnt ++;
    }

    cout << cnt << endl;

    return 0;
}
1103じゃがいも摘みりんご
#include <iostream>
using namespace std;

int main() {
    int a[10], h, cnt = 0;

    for (int i = 0; i < 10; i ++ ) cin >> a[i];

    cin >> h;

    for (int i = 0; i < 10; i ++ ) {
        if (h + 30 >= a[i]) cnt ++;
    }

    cout << cnt << endl;

    return 0;
}
1104本の料金の計算
#include <cstdio>
using namespace std;

int main() {
    int qty;
    double ttl, price[10] = {28.9, 32.7, 45.6, 78, 35, 86.2, 27.8, 43, 56, 65};

    for (int i = 0; i < 10; i ++ ) {
        scanf("%d", &qty);
        ttl += price[i] * qty;
    }

    printf("%.1lf", ttl);

    return 0;
}
1105アレイを逆の順序で復元します
#include <iostream>
using namespace std;

int main() {
    int n, a[105];

    cin >> n;

    for (int i = 1; i <= n; i ++ ) cin >> a[i];

    for (int i = n; i >= 1; i -- ) cout << a[i] << ' ';

    return 0;
}
1106年齢と病気
#include <cstdio>
using namespace std;

int main() {
    int n, age, c[4] = {};

    scanf("%d", &n);

    for (int i = 0; i < n; i ++ ) {
        scanf("%d", &age);
        if (age >=0 && age <=18) c[0] ++;
        else if (age <= 35) c[1] ++;
        else if (age <= 60) c[2] ++;
        else c[3] ++;
    }

    printf("%.2lf%%\n", 100.0 * c[0] / n);
    printf("%.2lf%%\n", 100.0 * c[1] / n);
    printf("%.2lf%%\n", 100.0 * c[2] / n);
    printf("%.2lf%%\n", 100.0 * c[3] / n);

    return 0;
}
1107学校の門の外の木
#include <iostream>
using namespace std;

int main() {
    int l, m, a[10005], cnt = 0;
    cin >> l >> m;

    for (int i = 0; i <= l; i ++ ) a[i] = 1;

    while (m--) {
        int s, e;
        cin >> s >> e;
        for (int i = s; i <= e; i ++ ) a[i] = 0;
    }

    for (int i = 0; i <= l; i ++ ) {
        if (a[i] == 1) cnt ++;
    }

    cout << cnt << endl;

    return 0;
}
1108ベクトル内積の計算
#include <iostream>
using namespace std;

int main() {
    int n, a[1005], b[1005], ans = 0;

    cin >> n;

    for (int i = 0; i < n; i ++ ) cin >> a[i];

    for (int i = 0; i < n; i ++ ) cin >> b[i];

    for (int i = 0; i < n; i ++ ) {
        ans += a[i] * b[i];
    }

    cout << ans << endl;

    return 0;
}
1109スイッチライト
#include <iostream>
using namespace std;

int main() {
    int n, m;
    bool a[5005];

    cin >> n >> m;

    for (int i = 1; i <= n; i ++ ) a[i] = 1;

    for (int i = 1; i <= m; i ++ ) {
        for (int j = 1; j <= n; j ++ ) {
            if (j % i == 0) a[j] = !a[j];
        }
    }

    bool flag = true;
    for (int i = 1; i <= n; i ++ ) {
        if (!a[i]) {
            if (flag) {
                cout << i;
                flag = false;
            }
            else {
                cout << ',' << i;
            }
        }
    }

    return 0;
}
1110特定の値を見つける
#include <iostream>
using namespace std;

int main() {
    int n, x, a[10005];

    cin >> n;

    for (int i = 1; i <= n; i ++ ) cin >> a[i];

    cin >> x;

    for (int i = 1; i <= n; i ++ ) {
        if (a[i] == x) {
            cout << i << endl;
            return 0;
        }
    }

    cout << -1 << endl;

    return 0;
}
1111不幸
#include <iostream>
using namespace std;

int main() {
    int a, b, max = 8, day = 0;

    for (int i = 1; i <= 7; i ++ ) {
        cin >> a >> b;
        if (a + b > max) {
            max = a + b;
            day = i;
        }
    }

    if (day > 0) cout << day << endl;
    else cout << 0 << endl;

    return 0;
}
1112最大値と最小値の違い
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int m, x, a[10005], maxx = 0, minn = 10000;

    cin >> m;

    for (int i = 0; i < m; i ++ ) {
        cin >> x;
        maxx = max(maxx, x);
        minn = min(minn, x);
    }

    cout << maxx - minn << endl;

    return 0;
}
1113最大数と同じではない数の合計
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n, a[105], maxx = 0, sum = 0;

    cin >> n;

    for (int i = 0; i < n; i ++ ) {
        cin >> a[i];
        maxx = max(maxx, a[i]);
    }

    for (int i = 0; i < n; i ++) {
        if (a[i] != maxx) sum += a[i];
    }

    cout << sum << endl;

    return 0;
}
1114白血球数
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;

int main() {
    int n;
    double a[305], avg, diff = 0;

    scanf("%d", &n);
    scanf("%lf", &a[0]);
    double minn = a[0], maxx = a[0], sum = a[0];

    for (int i = 1; i < n; i ++ ) {
        scanf("%lf", &a[i]);
        maxx = max(maxx, a[i]);
        minn = min(minn, a[i]);
        sum += a[i];
    }

    avg = (sum - maxx - minn) / (n - 2);

    bool flag1 = true, flag2 = true;
    for (int i = 0; i < n; i ++ ) {
        if (a[i] == maxx && flag1) {
            flag1 = false;
        }
        else if (a[i] == minn && flag2) {
            flag2 = false;
        }
        else {
            diff = max(diff, abs(a[i] - avg));
        }
    }

    printf("%.2lf %.2lf\n", avg, diff);

    return 0;
}
1115ヒストグラム
#include <iostream>
#include <algorithm>
using namespace std;

int n, a[10005], fmax = 0;

int main() {

    cin >> n;

    for (int i = 0; i < n; i ++ ) {
        int t;
        cin >> t;
        a[t] ++;
        fmax = max(fmax, t);
    }

    for (int i = 0; i <= fmax; i ++ ) cout << a[i] << endl;

    return 0;
}
1116最長のプラットフォーム
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n, a, b, cnt = 1, maxx = 0;
    cin >> n;
    cin >> a;

    for (int i = 1; i < n; i ++ ) {
        cin >> b;
        if (b == a) {
            cnt ++;
            maxx = max(maxx, cnt);
        }
        else {
            cnt = 1;
        }

        a = b;
    }

    cout << maxx << endl;

    return 0;
}
1117整数重複排除
#include <iostream>
using namespace std;

int main() {
    int n, x, a[5005] = {};

    cin >> n;

    for (int i = 0; i < n; i ++ ) {
        cin >> x;
        if (!a[x]) {
            cout << x << ' ';
            a[x] = 1;
        }
    }

    return 0;
}
1118カーペット
#include <iostream>
using namespace std;

int main(){
    int n, a[10005][4];
    cin >> n;

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 0; j < 4; j ++ ){
            cin >> a[i][j];
        }
    }

    int x, y;
    cin >> x >> y;

    for (int i = n; i >= 1; i -- ) {
        if (x >= a[i][0] && x <= a[i][0] + a[i][2] && y >= a[i][1] && y <= a[i][1] + a[i][3]) {
            cout << i << endl;
            return 0;
        }
    }

    cout << -1 << endl;

    return 0;
}

お子さんが4年生以上で、コンピュータープログラミングに興味があり、文化の授業に余裕がある場合は、カスタマーサービス(WeChat ID:xiaolan7321)に連絡して情報学の学習に参加してください。私たちはプロの情報学コンテストのコーチであり、オンラインの少人数クラスの教授法を使用しています。目標は、プログラミングを愛する小中学生が国内外の情報学コンテストで優れた結果を達成できるよう支援することです。

教育機能:

  • オンラインの少人数クラスの教育は、優れたコード基盤を築きます。大規模なクラスで「ついていけない」または「食べるのに十分でない」という問題を避けてください。

  • 豊富な教育経験、学生の知識構造と学習能力に精通し、スケジュールを合理的に調整します。

  • 競技会で練習し、試験や競技会を通じて学生の能力を継続的に向上させます。

おすすめ

転載: blog.csdn.net/davidliule/article/details/106139538