火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

语法基础必掌握知识点

作者: 作者的头像   huolong , 时间:2022-06-15 17:53:14 , 所有人可见, 阅读  10

程序基本框架
#include <bits/stdc++.h>
using namespace std;

int main() {
    //freopen("file.in", "r", stdin);
    //freopen("file.out", "w", stdout);


    return 0;
}
求最值
    int n, x;
    //最大值和最小值变量一定要初始化 
    int minn = 100, maxx = 0;
    for (int i = 1; i <= n; i ++) {
        cin >> x;
        minn = min(minn, x);
        maxx = max(maxx, x);
    }
求最值并记录位置
    int n, x;
    //最大值和最小值变量一定要初始化 
    int minn_pos, minn = 100;
    int maxx_pos, maxx = 0;
    for (int i = 1; i <= n; i ++) {
        cin >> x;

        if (x < minn) {
            minn = x;
            minn_pos = i;
        }

        if (x > maxx) {
            maxx = x;
            maxx_pos = i;
        }
    }
字符串输入及大小写转化
    string s;
    getline(cin, s);

    for (int i = 0; i < s.size(); i ++) {
        if (s[i] > 'A' && s[i] < 'Z') {
            s[i] += 32;
        }
        else if (s[i] > 'a' && s[i] < 'z') {
            s[i] -= 32;
        }
    }

    cout << s;
进制转换 (字符串 -> 十进制)
    //字符串s表示一个m进制正整数,将其转换成十进制数 
    string s;
    int m;
    cin >> s >> m;

    int ans = 0;
    for (int i = 0; i < s.size(); i ++){
        if (s[i] >= 'A') {
            ans = ans * m + (s[i] - 'A' + 10);
        }
        else {
            ans = ans * m + (s[i] - '0');
        }
    }
    cout << ans;    
进制转换 (十进制 -> 字符串)
    //n是一个十进进制正整数,将其转换成m进制(字符串)
    int n, m;
    cin >> n >> m;

    int a[50], len = 0;
    while (n > 0) {
        a[++len] = n % m;
        n /= m;
    }

    for (int i = len; i >= 1; i --) {
        if (a[i] >= 10) {
            cout << char(a[i] - 10 + 'A');
        }
        else {
            cout << a[i];
        }
    }
判断质数
bool isPrime(int x) {
    if (x < 2) return false;

    for (int i = 2; i <= x/i; i ++) {
        if (x%i == 0) return false;
    }

    return true;
}
求最大公约数
int gcd(int a, int b) {
    if (b == 0) return a;
    return gcd(b, a%b);
}
判断回文
bool huiwen(string s) {
    for (int i = 0, j = s.size()-1; i < j; i ++, j --) {
        if (s[i] != s[j]) return false;
    }

    return true;
}
数组排序
const int N = 1010;
int n, a[N];

bool cmp(int x, int y) {
    return x > y;
}

int main() {
    cin >> n;

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

    //从小到大排序 
    sort(a+1, a+1+n);

    //从大到小排序
    sort(a+1, a+1+n, cmp);

    return 0;
}
结构体排序
const int N = 1010;
int n, a[N];

struct info{
    int ttl, math;
}a[N];

bool cmp(info x, info y) {
    if (x.ttl > y.ttl) return true;

    if (x.ttl == y.ttl) {
        if (x.math > y.math) return true;
    }

    return false;
}

int main() {
    cin >> n;

    for (int i = 1; i <= n; i ++) {
        cin >> a[i].ttl >> a[i].math;
    } 

    //总分高的排在前面;如果总分相同,则数学成绩高的排在前面 
    sort(a+1, a+1+n, cmp);

    return 0;
}

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码