C语言
李桥桉
计算机科学与技术专业((\/))qiao_an_li
展开
-
【C/C++】getchar()在处理字符输入时的一个细节
如果我们需要连续多次输入‘字符’,则需要在每次输入字符后,及时处理这个换行符。ch1接收到输入的第一个字符 ‘a’ 后,系统会自动产生一个‘回车符’,如果没有第37行代码接收这个‘回车符’,‘回车符’就会被第40行的ch2接收。因为回车符属于字符,前一次接收的是%c字符类型,后一次要求接收%d数字类型(整型类型),两种类型匹配不上,%d无法接收%c字符型。当我们前一次输入的是字符类型,紧跟着后一次输入的是非字符类型的(比如数字类型),就可以省略前一次输入后对回车符的getchar()处理。原创 2023-03-01 18:39:05 · 1897 阅读 · 4 评论 -
【C/C++】类型限定符extern、const、Volatile、register
我们的C语言代码对变量a进行三次赋值后,并没有对a进行调用或后续其他任何操作,系统认为这三句都是无实际意义的,就被优化掉了哈哈哈。(1)①先定义一个普通的整型变量 a,然后分别进行3次赋值。众所周知,前两次赋值会被最后一次赋值覆盖掉,所以前两次的赋值已经无意义了,可以被优化掉。①如下代码,若先定义一个不可变的整型变量a并赋值为10,则再次给a赋新值时,系统会在变量a下面标红,鼠标放在标红处会提示出错原因(如下图)。所以,extern声明有a变量,但不是定义变量a,不会为变量a开辟存储空间。原创 2023-02-27 16:31:11 · 1307 阅读 · 0 评论 -
浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)
有一个B站号@李桥桉,很多年前讲过PTA里的一些题目的解法。近两年有好多同学反馈,需要读者码才能进行答题,不然只能免费注册、看题、编写代码,就是不能提交代码(大受震撼)。咱就是说,会不会是同学们找错页面了,有免费的不需要读者码的题目集啊。先来说打开PTA平台,哪些题目集是需要输入读者码的,哪些是免费练习不需要读者码的。原创 2023-02-26 16:39:33 · 11375 阅读 · 2 评论 -
计算机内存数值存储方式-原码、反码、补码、数值溢出
原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但当两个正数相减或不同符号数相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。不管以原码方式存储,还是以反码方式存储,0也有两种表示形式。②对于负数,符号位不变,其它部分取反(1变0,0变1)③补码符号位不动,其他位求反,最后整个数加1,得到原码。最高位的1溢出,剩余8位二进制表示的是3,正确。③负数的原码是在其绝对值的基础上,最高位变为1。①最高位做为符号位,0表示正,为1表示负。原创 2023-02-22 12:07:49 · 1638 阅读 · 0 评论 -
Visual Studio 2019(VS2019)中使用scanf strcpy sprintf报错的解决办法
使用scanf,strcpy,sprintf等函数会报C4996错误,所以应避免使用此类非安全函数。还有一个办法,建议非安全函数用带_s的函数,如scanf_s、strcpy_s等代替,但是这些带_s的并不是标准C函数。在使用Visual Studio 2019进行C代码开发时,原创 2023-02-17 20:51:07 · 2186 阅读 · 0 评论 -
[C语言]编写字符串复制函数strcpy(s1,s2)
[C语言]编写字符串复制函数strcpy(s1,s2)。方法①,用数组方法。方法②,用指针方法。原创 2022-06-19 22:26:49 · 2561 阅读 · 0 评论 -
【C语言】实现两个字符串的连接(不使用库函数),即把字符串S2连接到字符串S1后面。
#include <stdio.h>main(){ int i,j; //【1】 char s1[80],s2[30]; printf("请输入第一个字符串:\n"); scanf("%s",s1); //【2】 getchar(); printf("请输入第二个字符串:\n"); scanf("%s",s2); //【3】 getchar(); i=0; while(s1[i]!='\0') { i++ ; .原创 2022-03-06 20:21:26 · 12020 阅读 · 1 评论 -
7-22 龟兔赛跑 (超简单详细思路)
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?思路:①乌龟和兔子的时间都是一样的,只不过乌龟没分每秒都在不停地跑,兔子在一定条件下偷偷休息去了,所以乌龟的路程我直接用了个累加 tu..原创 2021-11-08 20:16:07 · 2828 阅读 · 2 评论 -
双曲余弦函数实现(C语言)
根据麦克劳林公式计算coshx的值。本题视频讲解发布在B站:李桥桉;大家自行去搜叭。代码如下:#include<stdio.h>double Fm (const double N);int main(){ double coshx=1.0,fz=1.0,fm=1.0, N=1.0; double x, c; double i=1.0; scanf("%lf%lf",&x,&c); while(fz/fm>c) ..原创 2021-10-30 13:25:46 · 2271 阅读 · 0 评论 -
统计并输出空格或回车、数字字符和其他字符的个数。
输入15个字符,统计并输出空格或回车、数字字符和其他字符的个数。要求使用switch语句编写。请注意,输入15个字符后,需回车表示输入结束,这最后一个回车表示输入结束,不统计在内。#include <stdio.h>int main(){ int blank,digit,i,other; char ch; blank=digit=other=0; for(i=1; i<=15; i++){ ch=g.原创 2021-10-30 13:20:40 · 6531 阅读 · 1 评论 -
浙大PTA 7-13 日K蜡烛图 (15 分)
股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low。如果Close<Open,表示为“BW-Solid”(即“实心蓝白蜡烛”);如果Close>Open,表示为“R-Hollow”(即“空心红蜡烛”);如果Open等于Cl原创 2021-10-30 13:11:35 · 254 阅读 · 0 评论 -
什么是单链表?线性表的链式存储
线性表的链式存储是用通过指针链接起来的结点来存储数据元素,基本的结点结构如下图1所示:图1:其中,数据域用于存储数据元素的值,指针域则存储当前元素的直接前驱或直接后继的位置信息。指针域中的信息称为指针(或链)。存储各数据元素的结点的地址并不要求是连续的,因此存储数据元素的同时必须存储元素之间的逻辑关系。另外,结点空间只有在需要的时候才申请,无须事先分配。结点之间通过指针域构成一个链表,若结点中只有一个指针域,则称为线性链表(或单链表),如下图2所示为:线性表的单链表存储。图2:设线性表中的元素原创 2021-05-13 21:31:03 · 437 阅读 · 0 评论 -
浙大PTA 6-4求自定类型元素的平均
题目:本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的 ElementType。本题视频讲解已发布在B站:https://www.bilibili.com/video/BV14T4y1K7eZ?p=3本人bilibili账号:李桥桉解题代码(答案)ElementType Average (ElementType S[], int N){ ElementType sum; ElementType ave; int i; for原创 2021-02-01 22:37:28 · 259 阅读 · 0 评论 -
typedef是什么?如何用struct定义结构类型?
想要知道typedef是什么,那么故事就要从 struct讲起,其实挺简单的。原创 2021-01-23 01:55:48 · 1090 阅读 · 2 评论 -
浙大PTA 6-3 简单求和
本题要求实现一个函数,求给定的N个整数的和。本题视频讲解已发布在B站:https://www.bilibili.com/video/BV14T4y1K7eZ?p=3本人bilibili账号:李桥桉解题代码int Sum (int List[], int N){ int i,Sum=0; for(i=0;i<N;i++) Sum+=List[i]; return Sum;}使用bilibili扫描,获取视频讲解...原创 2021-01-19 23:24:17 · 354 阅读 · 0 评论 -
浙大PTA 6-2 多项式求值
本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式在x点的值。本题视频讲解已发布在B站:https://www.bilibili.com/video/BV14T4y1K7eZ本人bilibili账号:李桥桉double f( int n, double a[], double x ){ double s=0.0,x0=1.0; for(int i=0;i<=n;i++) { if(a[i]) s+原创 2021-01-19 20:45:36 · 439 阅读 · 0 评论 -
浙大PTA 6-1 简单输出整数
本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。本题视频讲解已发布在B站:https://www.bilibili.com/video/BV14T4y1K7eZ本人bilibili账号:李桥桉解题代码void PrintN(int N){ for(int i=1;i<=N;i++) { printf("%d\n",i); }}...原创 2021-01-19 20:30:49 · 676 阅读 · 0 评论 -
C语言中的%f和%lf的区别
大家肯定知道在C语言中用于格式化输入输出时:整数值用%d;实数(浮点数)用%f;%f和%lf分别对应float类型和double类型用于格式化输入输出时的格式符号。其中:float,单精度浮点型,对应%f。double,双精度浮点型,对应%lf。用于输入时:double 类型使用了%f格式,会导致输入值错误。float类型使用%lf格式不仅会导致输入错误,还可能引起程序崩溃。用于输出时:float类型可以使用%lf格式,但不会有任何好处。double类型如果使用了%f原创 2021-01-19 15:08:55 · 38290 阅读 · 5 评论 -
int main()和void main()有什么区别
其实main也是一个函数;(1)#include<stdio.h>void main(){}void main() 这样定义只是说明main函数没有返回值。(2)#include<stdio.h>int main(void){ return 0;}int main(void)和int main()是一样的(括号里没有东西就相当于void)说明main函数有一个int类型的返回值。int main()是C语言的规范,要求main函数返回一个int类型原创 2021-01-16 15:52:32 · 4088 阅读 · 1 评论 -
void是什么?
1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:void a;这行语句编译时会出错,提示“illegal use of type ‘vo转载 2021-01-14 00:44:23 · 12639 阅读 · 6 评论 -
C语言中如何表示负数?
计算机中存放的整型数据都是按补码的形式存放的;正数的补码和二进制原码是一样的;负数的补码是其本身绝对值的原码取反再加1.0000 0000 表示 11111 1111 表示 -1注意表示范围,1111 1111被当作纯二进制看待时,是255,被当做补码看待时是 -1....原创 2020-12-18 01:03:50 · 15404 阅读 · 0 评论 -
浙大PTA基础编程题7-26 单词长度 (15分)
题目:你的程序要读入一行文本,其中以空格分隔为若干个单词,以 . 结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如 it’s 算一个单词,长度为4。注意,行中可能出现连续的空格;最后的 . 不计算在内。输入格式:输入在一行中给出一行文本,以 . 结束输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。输入样例:It’s great to see you here.输出样例:4 5 2 3 3 4完整代码:#inc原创 2020-11-26 12:38:57 · 3122 阅读 · 0 评论 -
c语言编程 开头的#include <stdio.h>是什么意思?
#是预处理指令include 是“包含”的意思#include " XX" 或者 #include ,意思是将"XX"或者中的文件引用到本程式中来,"XX"或者中的文件通常是由系统提供的,其扩展名为 .h。因此也称为头文件或首部文件。C语言的头文件中包括了各种标准库函数的函数原型。#include < stdio.h >是包含 stdio.h 头文件的意思, .h是头文件的扩展名(header file),stdio.h就是standard input output.header,也原创 2020-11-25 08:55:22 · 80818 阅读 · 4 评论 -
#include“conio.h“在C语言中是什么意思?
“预处理命令,表示程序包含conio.h库文件;conio.h库文件定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作”,比如getch()函数等等。原创 2020-11-17 11:19:16 · 13677 阅读 · 1 评论 -
PTA-7-27 冒泡法排序 (20分)
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。输出格式:在一行中输出冒泡排序法扫描完第K原创 2020-10-29 16:28:37 · 1067 阅读 · 3 评论 -
PTA练习4-11 统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143解题代码:#include <stdio.h> #include <math.h> int main(){ int m,n; scanf("%d %d",&m,&n);原创 2020-10-28 10:00:56 · 7793 阅读 · 0 评论 -
算法训练-7-2 Perfect Sequence (50分)
7-2 Perfect Sequence (50分)7-2完全序列(50分)Given a sequence of positive integers and another positive integer p. The sequence is said to be a “perfect sequence” if M≤m×p where M and m are the maximum and minimum numbers in the sequence, respectively.Now give原创 2020-10-26 00:43:44 · 379 阅读 · 0 评论 -
浙大PTA拼题7-26 单词长度
7-26 单词长度 (15分)题目你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的“.”不计算在内。输入格式:输入在一行中给出一行文本,以“.”结束。提示:用scanf("%c",…);来读入一个字符,直到读到“.”为止。输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。输入样例:It's great原创 2020-10-14 00:32:27 · 2040 阅读 · 2 评论 -
【C语言】输出由各种符号打印出的三角形
对于输出由*组成的三角形问题中,当然最“笨”的方法可以用print()语句一行一行的输出三角形每行对应的星星,不过,用循环语句的话会更节省时间。下面就是几种常见的三角形图案。(1)首先大家注意上边这个等腰直角三角形,第一列和第一行均6颗星;想要几颗星的三角形都可以,只要把如下代码中的第4行代码中的 n=6 改成你想要的数字即可,比如你想要四颗星的三角形,就把6改成4.#include <stdio.h>int main(){ int n=6;int i,j; for(i原创 2020-10-03 21:18:26 · 38353 阅读 · 3 评论