C语言 | 输入小于1000的数,输出平方根
例49:从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。解题思路:题目要求输入的数小于1000,为了增加程序的灵活性,定义符号常量M为1000,如果题目要求输入的数小于10000,只需修改define指令即可,不必修改主函数。 源代码演示:#include...
例49:从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。解题思路:题目要求输入的数小于1000,为了增加程序的灵活性,定义符号常量M为1000,如果题目要求输入的数小于10000,只需修改define指令即可,不必修改主函数。 源代码演示:#include...
例51:有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,这4个塔的高度为10cm,塔外无建筑物。今输入任一点的坐标,C语言编程求该点的建筑高度(塔外的高度为0)。 解析:此题说白了就是判断这点到各个圆心的距离,如果大于1的话证明在塔内,这是高度为10cm,否则就为0,关键是求点到各个圆心的距离。源代码演示:#include<stdio....
例52:输入一行字符,C语言编程分别统计出其中英文字母、空格、数字和其他字符的个数。解析:首先要手动录入信息,但是scanf函数不记录空格,所以首先键盘录入要用getchar函数。源代码演示:#include<stdio.h>//头文件 int main()//主函数 { char input_Character;//定义字符变量 int letters=0,sp...
C++共用体概述在C++中,会需要使几种不同类型的变量存放到同一段内存单元中,比如,将一个整型变量、一个字符型变量、一个双精度型变量放在同一个地址开始的内存单元中,这3个变量在内存中占的字节数不同,但都从同一地址开始存放,这种使几个不同的变量共占同一段内存的结构,称为共用体类型的结构。声明共用体类型的一般形式为 union 共用体类型名 {成员表列 }; 定义共用体变量的一般形...
文章目录 前言什么是协程相对于线程,协程的优势 协程的应用 前言 听说协程挺火,大厂都在用。那得学一下。 什么是协程 协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执...
例74:给出年月日,C语言编程计算该日是该年的第几天。解题思路:主函数接受从键盘输入的日期,并调用sum_day和leap函数计算天数,sum_day计算输入日期的天数。leap函数返回是否是闰年的信息。此题关键就是两部分,一是判断是否是闰年,如果是闰年的话需要加1,然后就是计算这个月之前的天数,读者根据这两个大方面思考即可。C语言源代码演示:#include<stdio.h>...
Linux下常见可重入函数: POSIX.1-20001标准规定,所有的标准库函数都必须是可重入函数,除了以下这些: 文章目录 可重入函数不可重入函数的特点如何写出可重入函数 上面是两张可重入函数的函数表,那,什么是可重入函数呢? 可重入函数 可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个...
例75:C语言输入3个整数,按由小到大的顺序输出。(要求用指针处理)解题思路:读者要明白指针该怎么用,看着道题的时候,应该首先想到的是不用指针怎么交换,想明白这个思路,加上指针处理就好了。C语言源代码演示:#include<stdio.h>//头文件 int main()//主函数 { void swap(int *p1,int *p2); //函数声明 int ...
例76:有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面m个数,C语言写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数,要求用指针。解题思路:读者看着道题的时候,首先要明白题意,要用函数和指针来做,读者如果嫌麻烦的话可以先不用指针,函数也可以先不抽取出来,就在主函数中写,然后按照题意修改下自己的代码。C语言源代码演示:#include<stdio...
例77:n个人围成一圈,C语言进行顺序排号,要求用指针。解题思路:从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的使原来第几号的那位。C语言源代码演示:#include<stdio.h>//头文件 int main()//主函数 { int i,k,n,m;//定义整型变量 int num[50];//定义整型数组 int *p;//定义...
C++register寄存器变量一般情况下,C++中的变量的值是存放在内存中的。当程序中用到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到CPU中的运算器。经过运算器运算,如果需要存数,再从运算器将数据送到内存存放。为提高执行效率,C++允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。这种变量叫做寄存器变量,用关键字r...
C++执行程序的过程C++的源程序是以.cpp作为后缀的,C语言则是.c(.cpp保存也可以兼容),为了使计算机能够执行高级语言的代码,必须对源程序做个处理,用编译器把源程序处理成计算机可以识别的二进制目标程序,一般目标程序的后缀为.obj。编译器在处理的过程中会对程序作出检查,如果编码的代码有错误,会提示error,在改正错误通过编译后,会得到目标文件。此时将系统库文件、目标...
C++if语句C++的if语句是用来判定所给的条件是否满足,并根据判断的结果true或false决定执行哪一步。单个if语句//如 if(x>y) { cout<<"x大于y"<<enld; } if(表达式)语句1else 语句2//如 if(x>y) { cout<<"x大于y"<<enld; } else { cout<<"x小于y"<<enld; } if(表达式...
01常量和变量 1、常量:在程序运行过程中,其值不能被改变的量称为常量。分为以下几类:(1)整型常量(2)实型常量(3)字符常量 ①普通字符 ②转义字符(4)字符串常量(5)符号常量2、变量:变量代表一个有名字的、具有特定属性的一个存储单元。3、常变量:C99允许使用常变量,常变量具有变量的基本属性只是不允许改变其值。4、标识符:用来对变量、符号常量名、函数、数组、类型等命名的...
01定义结构体数组1、一个结构体变量中可以存放一组有关联的数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。2、结构体数组与之前介绍的数值型数组的不同之处在于每个数组元素都是一个结构体类型的数据,他们都包括各个成员项。3、定义结构体数组一般形式(1)struct 结构体名{成员表列}数组名[数组长度];(2)先声明...
01指向结构体变量的指针1、指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素。2、指针变量的基类型必须与结构体变量的类型相同。3、C语言中允许把(*p).num用p->num来代替,“->”代表一个箭头,p->num表示p所指向的结构体变量中的num成员。02指向结构体数组的指针1、(++p)->num,先使p自加1,然后得到p指向的元素中的num成员值...
01枚举1、如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。2、枚举变量和其他数值型量不同,它们的值只限于花括号中指定的值之一。3、枚举常量是由程序设计者命名的,用什么名字代表什么含义,完全由程序员根据自己的需要而定,并在程序中作相应处理。4、一般形式enum[枚举名]{枚举元素列表},其中枚举名...
01什么是文件1、文件有不同的类型,在程序设计中,主要用到两种文件:(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。(2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。2、为了简化用户对输入输出设备...
01表示1、符号多项式的操作,已经成为表处理的典型用例。2、抽象数据类型一元多项式的定义ADT List {数据对象:D={ | ∈ ElemSet, i=1,2,...,n, n≥0 }数据关系:R1={ <ai-1 ,ai >| ,∈D, i=2,...,n }基本操作:{结构初始化}InitList( &L )操作结果:构造一个空的线性表 L 。{销毁结构}Destroy...
01抽象数据类型栈的定义1、栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为栈顶,相应地,表头端称为栈底,不含元素的空表称为空栈。2、栈又称为后进先出的线性表。02栈的表示 1、栈有两种存储表示方法(1)顺序栈:即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。(2)由...
例30:C语言求n!,要求用递归实现。解题思路:本题和例29思想差不多,都是用递归来实现,读者可以回顾一下《C语言 | 递归求年龄》求阶乘函数:int factorial(int number)//自定义阶乘函数 { int temp;//定义整型变量 if(number<0)//如果这个数小于0 { printf("错误数据请,输入大于0的数!");//不符...
01回溯法与树的遍历1、在程序设计中,有相当一类求一组解、或求全部解或求最优解的问题,大都是利用试探和回溯的搜索技术求解。2、回溯法也是设计递归过程的一种重要方法,它的求解过程实质上是一个先序遍历一棵“状态树”的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中。3、很多问题用回溯和试探求解时,描述求解过程的状态树不是一棵满的多叉树。4、当试探过程中出现的状态和问题所求...
例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值。解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它。二维数组的元素在内存中是按行顺序存放的,即存放完序号为0的行中的全部元素后,接着存放序号为1的行中的全部元素,依此类推。本例是顺序输出数组中各元素之值,比较简单。如果要输出某个指定的数值元素,则应事先计算该...
C++指向数组的指针作函数参数 一维数组名可以作为函数参数传递,多维数组名也 可作函数参数传递。 C++用字符数组存放一个字符串在C++中可以用多种方法访问一个字符串,第一种字符数组:#include<iostream>//预处理 using namespace std;//命名空间 int main()//主函数 { char str[]="关注:C语言入门到精通";...
例39:有n个学生的信息(包括学号、姓名、成绩),C语言编程实现按照成绩的高低顺序输出学生的信息。解题思路:用结构体数组存放n个学生信息,采用选择法对各元素进行排序,在定义结构体数组时进行初始化,为清晰起见,将每个学生的信息用一对花括号包起来。源代码演示:#include<stdio.h>//头文件 struct student //学生结构体 { int num; /...
01栈与递归1、栈还有一个重要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列的调用语句间接调用自己的函数,称做递归函数。2、在高级语言编制的程序中,调用函数和调用函数之间的链接及信息交换需要通过栈来进行。02实现 1、当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需先完成3件事:(1)将所有的实在参数、返回地址等信息传递给被调用函数保存。(2)...
01离散事件1、在日常生活中,经常会遇到许多为了维护社会正常秩序而需要排队的情景。这类活动的模拟程序通常需要用到队列和线性表之类的数据结构。2、部分代码示例//银行——离散事件模拟、 struct event{ int type,occurtime,money;//type为0,到达;为1,离开窗口;occurtime为0到600; }ev1,ev2; struct event...
01抽象数据类型队列的定义1、和栈相反,队列是一种先进先出(FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。2、在队列中,允许插入的一端叫做队尾,允许删除的一端则称为队头。3、双端队列:是限定插入和删除操作在表的两端进行的线性表。02链队列-队列的链式表示和实现1、用链表示的队列简称为链队列,一个链队列显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾...
01串1、计算机上的非数值处理的对象基本上是字符串数据。在较早的程序设计语言中,字符串是作为输入和输出的常量出现的。2、随着语言加工程序的发展,产生了字符串处理。02定义 1、串(string)(或字符串)是由零个或多个字符组成的有限序列。2、零个字符的串称为空串,它的长度为零。3、串中任意个连续的字符组成的子序列称为该串的字串。包括子串的串相应地称为主串。通常称字符在序列中的...
01表示和实现1、由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,则结构中的数据元素个数和元素之间的关系就不再发生变动。2、由于存储单元是一维的结构,而数组是个多维的结构,则用一组连续存储单元存放数组的数据元素就有个次序约定问题。3、对于数组,一旦规定了它的维数和各维的长度,便可为它分配存储空间,反之,只要给出一组下标便可求得相应数组元素的存储位置。4、由于计算各个元...