首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    科学计数 C语言

    现以科学计数的格式给出实数 A,请编写程序按普通数字表示输出 A,并保证所有有效位都被保留。 输入格式: 每个输入包含 1 个测试用例,即一个以科学计数表示的实数 A。...输出格式: 对每个测试用例,在一行中按普通数字表示输出 A,并保证所有有效位都被保留,包括末尾的 0。...C语言中的%[] %[]的功能是只读入[]内的字符,比如下面我的代码中的%[0-9]就是值只读入0到9这10个数字,碰到其他的字符就停止,如果加上^这个字符,变成%[^],那就是不读入[]内的字符,比如...c.%[0-9]E%c%d",&sign,&n[0],n+1,&signindex,&index); if(sign=='-') printf("-"); if(signindex=='-')...; while(index--) printf("0"); printf("%s",n); } else { for(i=0;n[i];i++) { printf("%c"

    25620

    【多态】【指针与】【多继承中的多态】

    debug 会得不偿失,因此:C++11提供了 override 和 final 两个关键字,可以帮助用户检测是否重写。...继承产生的是,由指针指向它,基表里面存的是距离基类的偏移量! 既然有了函数表指针,那这个指针肯定是用来指向我们的函数表的!...且要注意如果指针的地址不同,则代表他们的不一样,若地址一样的话,则他们是共享同一张的! 是在编译阶段产生的,而不是在运行的时候产生!且是存放在==代码段(常量区)==的!...总结一下派生类的生成: 先将基类中的内容拷贝一份到派生类中 如果派生类重写了基类中某个函数,用派生类自己的函数覆盖中基类的函数 派生类自己新增加的函数按其在派生类中的声明次序增加到派生类的最后...// 4.指针传递给PrintVTable进行打印 // 5.需要说明的是这个打印的代码经常会崩溃,因为编译器有时对的处理不干净,最后面没有放nullptr, // 导致越界

    1.2K30

    C语言实现哈希_哈希c语言代码

    ---- 简单的哈希的实现,c语言。 哈希原理 哈希是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址。...下图是一个哈希运行时内存布局: 先说一下原理。 先是有一个bucket数组,也就是所谓的桶。 哈希的特点就是数据与其在中的位置存在相关性,也就是有关系的,通过数据应该可以计算出其位置。...} index >>= 27; index &= (BUCKETCOUNT - 1); return index; } 辅助函数strDup 这是比较多余的做法,因为C标准库中...因为这个哈希中保存的是键值对,所以这个方法是从哈希中查找key对应的value的。...insertEntry(&t , "显卡" , "NVIDIA GeForce GTX 850M (2 GB / 华硕)"); insertEntry(&t , "显示器" , "奇美 CMN15C4

    4.9K20

    C++为什么要弄出这个东西?

    首先声明一点,并非是C++语言的官方标准的一部分,只是各家编译器厂商在实现多态时的解决方案。...另外即使同为不同的编译器对于的设计可能也是不同的,本文主要基于Itanium C++ ABI(适用于gcc和clang)。...从C的POD类型到C++的类 首先回顾一下C语言纯POD的结构体(struct)。如果用C语言实现一个类似面向对象的类,应该怎么做呢?...C++编译器实际会帮你生成一个类似上例中C语言写法二的形式。这也算是C++ zero overhead(零开销)原则的一个体现。...好了,现在我们对于C++如何应用多态有了一定的了解,那么多态又是如何实现的呢? 终于我们谈到 C++具体多态的实现一般是编译器厂商自由发挥的。

    51810

    多态与(函数)

    得到预期结果才来debug会得不偿失,因此:C++11提供了override和final两个关键字,可以帮 助用户检测是否重写. 1. final:修饰函数,表示该函数不能再被重写 class Car...总结一下派生类的生成:a.先将基类中的内容拷贝一份到派生类中 b.如果派生类重写了基类中某个函数,用派生类自己的函数覆盖中基类的函数 c.派生类自己新增加的函数按其在派生类中的声明次序增加到派生类的最后...这里还有一个童鞋们很容易混淆的问题:函数存在哪的?存在哪的? 答:函数存在存在对象中。注意上面的回答的错的。但是很多童鞋都是这样深以为然的。...注意存的是函数指针,不是函数,函数和普通函数一样的,都是存在代码段的,只是他的指针又存到了中。另外对象中存的不是,存的是指针。...// 4.指针传递给PrintVTable进行打印 // 5.需要说明的是这个打印的代码经常会崩溃,因为编译器有时对的处理不干净,最 后面没有放nullptr,导致越界,这是编译器的问题

    57320

    C语言选择与冒泡排序

    自学计算机网络的时候看到一张哈佛案例教学精髓的图片,觉得说的不错,顺便想了一下正在学习的C语言,被动学习都做到位了,看课,看书,理解后做笔记等等;主动学习也做了一部分,但只做了实战演练,没有转教别人,结合我...C语言学习过程中遇到的各类麻烦,写篇C语言排序的文章,用我自己的方式讲述,帮助不能理解的朋友理解,顺便得到一些反馈帮助我自己 ?...C语言的排序有很多种,目前我只学到了选择和冒泡,这两种排序主要考察的就是for循环的嵌套循环和数组,里面还涉及一个交换算法,本文的顺序是 交换算法,选择排序,冒泡排序 交换算法 交换算法是一个非常常见的算法...选择排序 选择排序也是一种很简单的排序,只不过要用for的嵌套循环和条件语句 算法内容: #include int main(void){ int i,j; //定义循环变量...一趟趟的冒泡,排序也就完成了 怎么说呢,冒泡排序就像打地鼠一样,第一遍把最大的地鼠打到最后,然后第二遍把第二大的地鼠打到最后,依次类推。

    2.5K20

    数据结构基础详解:哈希C语言代码实践篇】开放地址__拉链_哈希的创建_增删查操作详解

    1.哈希代码实现之开放地址1.1 开放地址创建哈希哈希本质就是一个线性,定义一个哈希结构体,包括一个动态数组PList,长,和关键字个数(元素个数)代码实现的一些细节1.没有关键字的地方...,默认初始值要设置成99999(就是无穷大),因为动态设置一个数组是随机值,会影响到代码结果//开放地址哈希的创建# define INF 999999999;typedef int ElemType...int Hi=(Di[i]+Hash(key))%HT.tLength; //线性探测函数的构建,除的是长 //如果没有超出界限,并且没有查到空白的元素,就一直找到超出界限为止...左边存储的是指针,是指针数组,也就是存储的它挂着的那些链的第一个结点pList是指向指针数组的指针,是指针的指针2.1 链地址之创建哈希typedef struct Node{ ElemType...,这里省略,插入不省略2.3 链地址之插入插入代码如下://链地址的插入其实就是单链表的插入,这里用尾插进行链地址哈希的插入void insrt(ElemType key,ChHashTable

    18100

    【线性】之顺序(C语言)

    【线性】之顺序 线性 线性(linear list)是n个具有相同特性元素的有限序列 。...线性是一种在实际中广泛使用的数据结构,常见的线性:顺序、链表、栈、队列、字符串… 线性在逻辑上是线性结构,也就说是连续的一条直线。...但是在物理结构上并不一定是连续的,线性在物理上存储时,通常以数组和链式结构的形式存储。 顺序 它是最简单的数据结构,也是最常用的数据结构——他的作用就是将数据存起来。...概念:顺序是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序一般可分为: 1.静态顺序:使用定长数据存储。...2.动态顺序:使用动态开辟的数组存储。

    62410

    驱动

    什么是驱动? 是一种编程模式,从表里查找信息而不使用逻辑语句(if 和case)。事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表来选择。...使用总则 适当的情况下,采用驱动,所生成的代码会比复杂的逻辑代码更简单,更容易修改,而且效率更高。 用一个例子来说明下: 假设你需要把字符划分为字母、标点符号和数字三类。...]; 使用驱动的两个问题 1)如何从中查数据?...“ 如在程序语言中编写逻辑函数 KeyFromAge(),甚至使用HashMap来定义好逻辑上的键值映射关系也是OK的。...总结 驱动提供了一种复杂的逻辑和继承结构的替换方案。如果你发现自己对某个应用程序的逻辑或者继承关系感到困惑,那是否可以通过一个查询来加以简化。

    56051

    C++函数

    所以才有了函数,下面对上面的程序进行改造。...函数的使用方法(以下内容 摘自《C++面向对象程序》): (1)在基类用virtual声明成员函数为函数。    ...在类外定义函数时,不必再加virtual。 (2)在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的函数相同,并根据派生类的需要重新定义函数体。    ...C++规定,当一个成员函数被声明为函数后,其派生类中的同名函数都自动成为函数。    ...如果在派生类中没有对基类的函数重新定义,派生类简单地继承其直接基类的函数。 (3)定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象。

    1.1K30

    C语言手撕顺序

    一、概念 顺序是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序一般分为 1、静态顺序:使用定长数组存储元素。...2、动态顺序:使用动态开辟的数组存储 我们一般使用动态顺序,因为静态顺序的数组大小固定的,而动态可以根据我们需求的不同去在线扩容,所以接下来的文章围绕如何实现动态顺序来讲解。...);//头删 void SeqListPopBack(SeqList* ps);//尾删 void SeqListCheckCapacity(SeqList* ps);//检查是否需要扩容 // 顺序查找...int SeqListFind(SeqList* ps, SLDateType x); // 顺序在pos位置插入x void SeqListInsert(SeqList* ps, int pos,...心得: 顺序开启了数据结构的的序章,顺序算是很简单的数据结构了,从此我们需要敲一部分代码,编译一次,不能一股脑的输出,结果编译发现好多个bug,需要写一部分,编译一部分,这样才更加的有持续性。

    9710
    领券