牛客基础打卡 6.9

牛客基础打卡 6.9,第1张

1. break语句只能跳出switch选择以及循环语句的当前嵌套层次!

break跳一层(执行该层循环后的语句),continue跳一次(执行下一次循环)

2. 关于空指针和未初始化指针:

(1)对0x0这个地址取值是非法的,无法对内存为0的地址取地址。

(2)空指针(NULL/nullptr)可以确保不指向任何对象或函数(指向为NULL),对象或函数的指针不可能为空指针;而未初始化指针(野指针)则可能指向任何地方。

(3)malloc函数在分配内存失败时会返回空指针(NULL/nullptr),而非为初始化的指针;C++在分配内存失败时会抛出BAD_ALLOC异常。

(4)野指针产生原因:

    4.1 声明的指针未被初始化,内存空间中的值在未赋值之前是随机数,因此会产生野指针。解决方法:创建指针应该将其初始化为NULL或者指向某一内存空间。

    4.2 通过malloc或new申请空间并释放后没有将指针置为空会产生野指针(失效指针)。

3. 关于枚举变量的定义不正确的为C:由于C未定义变量。。(答案不重要,看知识点)

 

声明枚举变量的三种方法:

(1)先声明枚举类型后定义枚举类型变量

(枚举类型中的枚举值若未初始化,默认值从0依次递加:sun=0,mou=1...)

enum WeekdayType
{
	sun, mon, tue, wed, thu, fri, sat
};
enum WeekdayType today, yesterday, tomorrow;

 (2)声明枚举类型的同时定义枚举类型变量

enum WeekdayType
{
	sun, mon, tue, wed, thu, fri, sat
}today,yesterday,tomorrow;

(3) 直接定义枚举类型变量

enum 
{
	sun, mon, tue, wed, thu, fri, sat
}today,yesterday,tomorrow;

4. 使用关键字typedef可以定义类型别名,即给已存在的类型起别名不能定义变量!

5. 求三个数的最大乘积:

int i, j;
void QuickSort(int* a, int left, int right)
{
    int tmp, t;
    if (left>right) return;
    tmp = a[left]; //习惯令初始值为第一个元素
    i = left, j = right;
    while (i != j) //i==j时一轮循环结束,要交换基准值与a[i]=a[j]
    {
        while (a[j] >= tmp && i < j) //先找右边!
        {
            j--;
        }
        while (a[i] <= tmp && i < j)
        {
            i++;
        }
        if (i < j) //前两个while都退出代表j从右往左找到比基准小的值且i从左往右找到比基准大的值,此时交换a[i]和a[j]
        {
            t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    }
    a[left] = a[i];
    a[i] = tmp;
    QuickSort(a, left, i - 1);
    QuickSort(a, i + 1, right);
}
long long solve(int* A, int ALen ) {
    QuickSort(A,0,ALen-1);
    long long max1=A[ALen-1],max2=A[ALen-2],max3=A[ALen-3];
    long long min1=A[0],min2=A[1];
    if(min1<0&&min2<0)
    {
        if((-min1>A[ALen-2]||-min1>A[ALen-3])&&(-min2>A[ALen-2]||-min2>A[ALen-3]))
        {
            return A[ALen-1]*min1*min2;
        }
    }
    return max1*max2*max3;
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1329981.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存