• 华为模拟机试_C++题解


    华为模拟机试

    [编程|100分] a+b

    题目描述

    计算a+b的和

    每行包含两个整数a和b

    对于每行输入对应输出一行a和b的和

    输入

    1 5
    

    输出

    6
    

    自解

    #include<iostream>
    using namespace std;
    int main()
    {
        int a, b;
        while(cin >> a >> b){
            cout << a + b << endl;
        }
    }
    
    • ⭐cin流本身有返回值,读取成功为true,失败为false
    • 考虑使用EOF
      • EOF是end of file的缩写,表示”文字流”(stream)的结尾。这里的”文字流”,可以是文件(file),也可以是标准输入(stdin)。
      • EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。#define EOF (-1)
      • 除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

      参考:C++——EOF是个什么东西?

    [编程|200分] 0交换排序

    题目描述

    长度为n的数组乱序存放着0至n-1.现在只能进行0与其他数的交换,完成以下函数

    自解

    /**
     * 交换数组里n和0的位置
     * array: 存储[0-n)的数组
     * len: 数组长度
     * n: 数组里要和0交换的数
     */
    extern void swap_with_zero(int* array, int len, int n);
    
    class Solution {
    public:
        /**
         * 调用方法swap_with_zero来对array进行排序
         */
        void sort(int* array, int len) {
            for (int i = 0; i < len; i++){
                swap_with_zero(array, len, array[i]);
                swap_with_zero(array, len, i);
            }
        }
    };
    

    思路

    排序后应当每个位置的值与索引一致,所以应当先将0交换到此位置值对应的位置,再将此位置值与0交换,可将值放到对应位置

    参考NOWCODER

    /**
     * 交换数组里n和0的位置
     * array: 存储[0-n)的数组
     * len: 数组长度
     * n: 数组里要和0交换的数
     */
    extern void swap_with_zero(int* array, int len, int n);
    
    class Solution {
    public:
        /**
         * 调用方法swap_with_zero来对array进行排序
         */
        void sort(int* array, int len) {
            for (int i = 0; i < len; i++){
                if (array[i] == i)
                    continue;
                swap_with_zero(array, len, array[i]);
                swap_with_zero(array, len, i);
            }
        }
    };
    

    添加判断,如果此位置的值已经是正确的,那么可以利用continue跳过此次循环

  • 相关阅读:
    BUGFREE安装等
    常用网站
    Mongodb
    python资源
    HTTP协议详解(经典)
    Jmeter工具
    一.移动app测试与质量保证
    我发现涯哥特有才。各种跳,组合式
    原来如此
    我真庆幸我看过那本书。
  • 原文地址:https://www.cnblogs.com/whale90830/p/10520188.html
Copyright © 2020-2023  润新知