C语言习题~day32

请问该程序的输出是多少()

#include<stdio.h> 
int main(){ 
    unsigned char i = 7; 
    int j = 0; 
    for(;i > 0;i -= 3){ 
       ++j; 
    } 
    printf("%d\n", j); 
    return 0; 
}

A.2

B.死循环

C.173

D.172

无符号字符型的取值范围是 0 到 255。

第一次循环,i 从 7 减 3 变为 4,j 加 1 变为 1;第二次循环,i 变为 1,j 变为 2;第三次循环,i 变为 253(7 减 3 溢出后变为 253),j 加 1 变为 3;第四次循环,i 变为 250,j 加 1 变为 4;第五次循环,i 变为 247,j 加 1 变为 5;……依次类推,直到 i 变为 0 时,循环结束。

从 7 开始每次减 3,7、4、1、253、250、247……这样一共减了 173 次 3 才到 0,所以最终 j 的值是 173。

2.给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
示例 2:
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
/*
解题思路:使用三次逆转法,让数组旋转k次
1. 先整体逆转
2. 逆转子数组[0, k - 1]
3. 逆转子数组[k, size - 1]
*/
void reverse(int* nums, int begin, int end)
{
    while(begin < end)
    {
        int tmp = nums[begin];
        nums[begin] = nums[end];
        nums[end] = tmp;

        ++begin;
        --end;
    }
}

// 三趟逆置倒的思路
void rotate(int* nums, int numsSize, int k){
    if(k > numsSize)
    {
        k %= numsSize;
    }
    
    reverse(nums, 0, numsSize-1);
    reverse(nums, 0, k-1);
    reverse(nums, k, numsSize-1);
}

3.数组nums包含从0n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

示例1

输入:[3,0,1]
输出:2
示例 2:
输入:[9,6,4,2,3,5,7,0,1]
输出:8

int missingNumber(int* nums, int numsSize){
    int n =numsSize;
    int ret=(n+0)*(n+1)/2;
    for(int i =0;i<numsSize;i++)
    {
        ret-=nums[i];
    }
    return ret;

}

相关推荐

  1. C语言习题~day32

    2024-06-08 21:38:03       12 阅读
  2. C语言-----习题

    2024-06-08 21:38:03       30 阅读
  3. C语言经典习题20

    2024-06-08 21:38:03       8 阅读
  4. C语言经典习题17

    2024-06-08 21:38:03       9 阅读

最近更新

  1. stm32毫秒ms延时,HAL_Delay()

    2024-06-08 21:38:03       0 阅读
  2. nftables(4)表达式(2)主要表达式(PRIMARY EXPRESSIONS)

    2024-06-08 21:38:03       0 阅读
  3. C++八股(三)之虚函数

    2024-06-08 21:38:03       0 阅读
  4. Linux下mysql数据库的导入与导出以及查看端口

    2024-06-08 21:38:03       0 阅读
  5. Mybatis-Flex各种查询,强烈建议收藏

    2024-06-08 21:38:03       0 阅读
  6. Mybatis-plus学习

    2024-06-08 21:38:03       1 阅读
  7. mysql函数 last_insert_id()

    2024-06-08 21:38:03       1 阅读
  8. DateTimeUtils

    2024-06-08 21:38:03       1 阅读

热门阅读

  1. 第6章:数据库设计基础知识

    2024-06-08 21:38:03       11 阅读
  2. 使用JDBC连接MySQL完整步骤(实测可用)

    2024-06-08 21:38:03       9 阅读
  3. linux 删除磁盘分区

    2024-06-08 21:38:03       8 阅读
  4. 2024年6月7日第十五周下午学习英语六级大纲

    2024-06-08 21:38:03       6 阅读
  5. 顶级域名和二级域名的区别

    2024-06-08 21:38:03       14 阅读
  6. oracle表锁

    2024-06-08 21:38:03       10 阅读
  7. SwiftUI四绘制路径和形状

    2024-06-08 21:38:03       10 阅读
  8. 正则表达式

    2024-06-08 21:38:03       11 阅读
  9. 为你的网站安装免费的 SSL TLS 证书

    2024-06-08 21:38:03       11 阅读
  10. STP简介

    2024-06-08 21:38:03       10 阅读