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

结构体作业等

这里写目录标题

  • 题目一
  • 题目二

题目一

32位系统环境,编译选项为4字节对齐,那么sizeof(A)sizeof(B)是( )

struct A
{
 int a;
 short b;
 int c;
 char d;
};
struct B
{
 int a;
 short b;
 char c;
 int d;
};

这里我们还是可以通过画图的方式来解决

在这里插入图片描述

其中结构体a的大小可以这样子来解决 大小是16 结构体b的大小可以参考这个解法

所以说 a的大小是16 b的大小是12

题目二

描述
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。

输入描述:
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)

输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
示例1
输入:
4
2
2
1
1
输出:
1 2
示例2
输入:
5
5
4
3
2
1
输出:
1 2 3 4 5

这一题的难点主要在于如何消除相同的数字 这里我一开始的解法是

将这个数组排序 这样子我们就得到了一个有序数组

例如 1 1 2 2 3 4 5

这种格式

要求我们不输出相同的数 这个时候我们只需要设置一个判断条件

如果前面一个数和后面一个数不同 就输出它

很可惜的是 这样子的时间复杂度超了

代码如下

#include <stdio.h>


int main()
{
    int n, k, i, j, tmp;
    int count;
    int arr[1000000] = { 0 };
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
    for (i = 0; i < n; i++)
    {
        if (arr[i] != arr[i + 1])
        {
            printf("%d ", arr[i]);
        }


    }
    return 0;
}

之后通过看答案得到了一种很巧妙的排法

那就是这个数字为n 那么就在将数组的第n个数字赋值为它 这样子就能避免重复数字的打印

最后打印的时候不打印0 就能得到一个完美的输出

int main()
{
	int i, j,n, tmp;
	scanf("%d", &n);
	int arr[100000] = { 0 };
	for ( i = 0; i < n; i++)
	{
		scanf("%d", &tmp);
		arr[tmp] = tmp;
	}
	for ( i = 0; i <100000; i++)
	{
		if (arr[i] != 0)
		{
			printf("%d ", arr[i]);
		}

	}
	return 0;
}

以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够

不吝赐教 在评论区或者私信指正 博主一定及时修正

那么大家下期再见咯

相关文章:

  • ARM架构种类
  • 【牛客刷题-算法】NC16 对称的二叉树
  • MATLAB算法实战应用案例精讲-【回归算法】XGBoost算法(附Java、Python和R语言代码)
  • 基于java春晓学堂管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  • 通关率不到0.1%的小游戏《羊了个羊》为什么这么火?
  • [架构之路-7]:架构师 - 嵌入式硬件架构师的工作内容和工作要求是什么
  • 【javaweb简单教程】3.使用JDBC操作数据库(含简单示例完整代码)
  • 【uiautomation】微信群发消息,获取群通讯录名单
  • 「数据结构详解·八」带权并查集 扩展域并查集
  • 【SQL刷题】DAY21----SQL组合查询专项练习
  • 解决使用Lambda分组后,每组多条数据处理
  • 商业地产如何走出高空置率困局?
  • <学习笔记>从零开始自学Python-之-基础语法篇(十一)正则表达式re库
  • 随想录一期 day2 [977.有序数组的平方|209. 长度最小的子数组|59.螺旋矩阵II(剥洋葱)]
  • 自动驾驶数据标注基本框架,你了解多少?丨曼孚科技
  • JS 中的深拷贝与浅拷贝
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2017年终总结、随想
  • Android交互
  • CentOS 7 修改主机名
  • cookie和session
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HTTP 简介
  • HTTP中GET与POST的区别 99%的错误认识
  • Java 内存分配及垃圾回收机制初探
  • Java知识点总结(JavaIO-打印流)
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • sessionStorage和localStorage
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 观察者模式实现非直接耦合
  • 聊聊redis的数据结构的应用
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • # centos7下FFmpeg环境部署记录
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • (06)Hive——正则表达式
  • (1)Android开发优化---------UI优化
  • (145)光线追踪距离场柔和阴影
  • (ibm)Java 语言的 XPath API
  • (二)hibernate配置管理
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (九)c52学习之旅-定时器
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)80c52学习之旅-起始篇
  • (一)Java算法:二分查找
  • (转)平衡树
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CF命令行调试器MDbg入门(三) 进程控制