当前位置: 首页 > news >正文

全面回顾复习——C++语法篇1(基于牛客网C++题库)

注:牛客网允许使用万能头文件#include<bits/stdc++.h>

1、求类型长度——sizeof()函数

2、将浮点数四舍五入——round()函数——前面如果加上static_cast会更安全一些

                                在C语言中可以使用printf(“.0lf”)

3、求和——直接输出,没什么好说的

4、两数最大和——max()函数

5、和差积商模——也没什么好说的,可以用max函数判断一下

6、交换两数值——swap()函数

7、三目运算符——?——(如果式子成立)?(输出):(如果式子不成立输出这个)

8、折扣问题——上代码

    if(price>=100&&price<500)  
        cost=price*0.9;
    else if(price>=500&&price<2000) 
        cost=price*0.8;
    else if(price>=2000&&price<5000)    
        cost=price*0.7;
    else if(price>=5000)  
        cost=price*0.6;
    cout<<cost;

9、身高体重——简单逻辑判断

    double tmp=weight/(height*height);
    if(tmp<18.5)    cout<<"偏瘦";
    else if(tmp>18.5&&tmp<=20.9) cout<<"苗条";
    else if(tmp>20.9&&tmp<=24.9)    cout<<"适中";
    else if(tmp>24.9)   cout<<"偏胖";

10、一样

    if(score<0||score>100)  cout<<"成绩不合法";
    else if(score>90&&score<100) cout<<"优秀";
    else if(score>80&&score<89) cout<<"良";
    else if(score>70&&score<79) cout<<"中";
    else if(score>60&&score<69) cout<<"及格";
    else if(score>0&&score<59) cout<<"差";

11、一样,但可以练习一下Switch,case,break

    if(month>=1&&month<=12)
    {
    switch(month)
    {
        case 12:
        case 1:
        case 2:
        cout<<"冬季";
            break;
        case 3:
        case 4:
        case 5:
        cout<<"春季";
         break;
        case 6:
        case 7:
        case 8:
        cout<<"夏季";
         break;
        case 9:
        case 10:
        case 11:
        cout<<"秋季";
         break;
    }
    }
    else {
    cout<<"不合法";

12、注意边界就行了

    for(int i=1;i<=n;i++)
    {
        if(i%2==0)
        {
            sum+=i;
        }
    }

13、递归,或者直接for

    // write your code here......
    long long int tmp=1;
    for(int i=1;i<=n;i++)
    {
        tmp*=i;
    }
    cout << tmp << endl;

14、分解,然后判断。依稀记得这是当年难住我的一道题

    for(int i=100;i<=999;i++)
    {
        int bai=i/100;
        int shi=i%100/10;
        int ge=i%10;
        if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i)
        {
            cout<<i<<endl;
        }
    }

15、不难,但是相当烦的一道题

    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            cout<<j<<" * "<<i<<" = "<<j*i<<"    ";
        }
        cout<<endl;
    }
    return 0;

16、9到9999999999的和——不难,但要注意int的范围

    int i=10;
    long long int tmp=0;
    long long int n=9;
    while(i--)
    {
        tmp+=n;
        n=n*10+9;
        //cout<<n<<endl;
    }
    cout<<tmp;
    return 0;

17、只需要注意输出,使用printf比较方便

    if(n>1)
    {
        for(int i=2;i<=n;i++)
        {
            h/=2;
            sum+=h*2;
            
        }
        printf("%.1f ",sum);
        printf("%.1f",h/2);
    }
    else if(n==1)
    {
        high=h/2.0;
        printf("%.1f ",h);
        printf("%.1f",high);
    }
    return 0;

18、质数只有自己本身和1为因数。所以只需要判断到根号n就行。但是不能再循环中写i<sqrt(n),这样会导致循环无法进行

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    if (n <= 1) {
        cout << "不是质数";
    } else if (n == 2) {
        cout << "是质数";
    } else if (n % 2 == 0) {
        cout << "不是质数";
    } else {
        bool is_prime = true;
        // 优化循环条件:使用i*i避免浮点误差
        for (int i = 3; i*i <= n; i += 2) {
            if (n % i == 0) {
                is_prime = false;
                break;
            }
        }
        cout << (is_prime ? "是质数" : "不是质数");
    }
    
    return 0;
}

19、虽然是数组题,但是可以阶级复习一下vector

    vector<int>v;
    for (int i = 0; i < 6; i++) {
        int n;
        cin >> n;
        v.push_back(n);
    }
    sort(v.begin(),v.end());
    cout << v[0] << " ";
    cout << v[v.size()-1];

20、同理(牛客这种格式题真的好烦)

    vector<int>v;
    for(int i=0;i<6;i++)
    {
        int n;
        cin>>n;
        v.push_back(n);
    }
    cout<<"[";
    for(int i=0;i<=4;i++)
    {
        cout<<v[i]<<", ";
    }
    cout<<v[5];
    cout<<"]";
    cout<<endl;



    cout<<"[";
    for(int i=5;i>=1;i--)
    {
        cout<<v[i]<<", ";
    }
    cout<<v[0];
    cout<<"]";

21、冒泡排序,不难,但是容易忘

#include <iostream>
using namespace std;

void Bubble(int arr[], int len) 
{
    for (int i = 0; i < len - 1; i++) 
    { //轮数
        for (int j = 0; j < len - i - 1; j++) 
        { //每一轮的操作
            if (arr[j] > arr[j + 1]) 
            {
                swap(arr[j+1], arr[j]);
            }
        }
    }
}

int main() {

    int arr[6] = { 0 };
    int len = sizeof(arr) / sizeof(int);

    for (int i = 0; i < len; i++) {
        cin >> arr[i];
    }

    // write your code here......
    Bubble(arr,len);

    for (int i = 0; i < len; i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

21、选择排序

    for(int i=0;i<len-1;i++)
    {
        int tmp=i;
        for(int j=i+1;j<len;j++)
        {
            if(arr[j]<arr[tmp])
            {
                tmp=j;
            }
        }
        swap(arr[tmp],arr[i]);
    }
    for(int i=0;i<len;i++)
    {
        cout<<arr[i]<<" ";
    }

22、二维数组求和

    int arr[4][3] = {{22,66,44},
        {77,33,88},
        {25,45,65},
        {11,66,99}};
        // write your code here......;
    
    int sum = 0;
    
    for(int i = 0; i < 4; i++) {
        for(int j = 0; j < 3; j++) {
            sum += arr[i][j];
        }
    }
    
    cout << sum << endl;

相关文章:

  • XSS-LABS靶场通关讲解
  • 读书会-c#并发编程
  • P9421 [蓝桥杯 2023 国 B] 班级活动--数学题(配对问题)
  • FakeApp 技术浅析(三):自动编码器
  • ArcGIS 工程文件到 ArcGIS Pro 的无缝迁移:详细步骤与技巧
  • Linux系统管理二
  • MYSQL之创建数据库和表
  • 算力集群+Pycharm+SSH连接经验(自用)
  • Redis篇:基础知识总结与基于长期主义的内容更新
  • 德鲁伊连接池
  • ROS云课基础题库-01C++案例-甜甜圈
  • TCP和UDP
  • python JSON模块
  • VS(visual studio 2022)的实用调试小技巧[特殊字符]
  • 《 C++ 修炼全景指南:二十六 》想懂数据库?深入 B 树的世界,揭示高效存储背后的逻辑
  • 低空经济-飞行数据平台 搭建可行方案
  • Unity DOTS从入门到精通之 自定义Authoring类
  • 1:1精准还原!用Python+Adobe Acrobat DC实现PDF转Word全自动化
  • 【Git】合并,删除分支
  • JVM - 3.垃圾回收
  • 梅花奖在上海|朱洁静:穿越了人生暴风雨,舞台是最好良药
  • 乌外长:乌方准备无条件停火至少30天
  • 上海“电子支付费率成本为0”背后:金融服务不仅“快”和“省”,更有“稳”和“准”
  • 《中国人民银行业务领域数据安全管理办法》发布,6月30日起施行
  • 范志毅跨界归来做青训,探索中国足球人才培养新模式
  • 上海发布预付卡消费“10点提示”:警惕“甩锅闭店”套路