小白C语言学习笔记
小白学习C语言的笔记,超级基础的东东!!
嗨I,你Y
这个作者很懒,什么都没留下…
展开
-
2021-03-22
数据结构——排序算法一,插入算法1,直接插入void InsertSort(ElemType A[],int n){ int i,j; for(i=2;i<n;i++) { if(A[i]<A[i-1]) { A[0]=A[i];//A[0]为哨兵 for(j=i-1;A[0]<A[j];--j)//从后向前查找待插入的位置 A[j+1]=A[j]; A[j+1]=A[0]; } }}空间原创 2021-03-25 19:24:15 · 107 阅读 · 0 评论 -
实验11-1-9 藏尾诗 (20分)
本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静输出样例:风平浪静#include<stdio.h>#include<string.h>#include<stdlib.h>#include&原创 2020-11-07 18:05:26 · 331 阅读 · 0 评论 -
C语言中对结构体排序
在C语言中对结构体排序用qsort()函数进行排序,qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法)实验9-5 查找书籍 (20分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最原创 2020-11-07 17:33:22 · 4782 阅读 · 0 评论 -
实验7-3-10 删除重复字符 (20分)
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>int main(){原创 2020-11-07 16:36:15 · 553 阅读 · 0 评论 -
实验7-3-9 字符串字母大小写转换 (15分)
本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。输入格式:输入为一个以“#”结束的字符串(不超过30个字符)。输出格式:在一行中输出大小写转换后的结果字符串。输入样例:Hello World! 123#输出样例:hELLO wORLD! 123#include<stdio.h>#include<string.h>#include<stdlib.h>#include<原创 2020-11-07 14:20:40 · 858 阅读 · 0 评论 -
实验7-1-13 装箱问题 (20分)
假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si(1≤si≤100,表示第i项物品的大小)。输出格式:原创 2020-11-07 13:46:18 · 283 阅读 · 0 评论 -
实验4-2-9 梅森数 (20分)
形如2n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。输入格式:输入在一行中给出正整数n(n<20)。输出格式:按从小到大的顺序输出所有不超过2n−1的梅森数,每行一个。如果完全没有,则输出“N原创 2020-11-07 12:56:58 · 1005 阅读 · 0 评论 -
实验4-2-4 换硬币 (20分)
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。输入样例:13输出样例:fen5:2, fen2:1, fen1:1, total:4fen5:1, f原创 2020-11-07 09:27:37 · 225 阅读 · 0 评论 -
实验7-2-10 简易连连看 (20分)
本题要求实现一个简易连连看游戏模拟程序。给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1,y1)、(x2,y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏。输入格式:输入在一原创 2020-11-06 18:22:47 · 602 阅读 · 0 评论 -
实验7-2-9 螺旋方阵 (20分)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9#include<stdio.h>#inclu原创 2020-11-06 17:18:28 · 1938 阅读 · 0 评论 -
实验7-2-6 打印杨辉三角 (20分)
本题要求按照规定格式打印前N行杨辉三角。输入格式:输入在一行中给出N(1≤N≤10)。输出格式:以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。输入样例:6输出样例:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<mat原创 2020-11-06 16:11:34 · 5048 阅读 · 2 评论 -
实验9-8 通讯录排序 (20分)
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 19850403 1391原创 2020-11-05 19:31:04 · 123 阅读 · 0 评论 -
qsort()函数
在C的<stdlib.h>中有个qsort()的库函数,该函数的作用是对数组进行排序,具体使用方法如下:qsort(数组名a,数组长度n,数组中每个元素所占字节数,比较方法)以int型的数组为例:#include<stdlib.h>#include<stdio.h>int compar(const void *a1,const void *a2)//c...转载 2020-03-02 11:54:08 · 190 阅读 · 0 评论 -
(PTA)习题8-6 删除字符 (20分)
本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义:void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char ...原创 2019-12-19 15:48:09 · 2401 阅读 · 3 评论 -
(PTA)习题9-4 查找书籍 (20分)
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming...原创 2019-12-19 14:55:30 · 1282 阅读 · 0 评论 -
(PTA)练习7-8 方阵循环右移 (20分)
练习7-8 方阵循环右移 (20分)本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。输出格式:按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。...原创 2019-12-17 14:29:16 · 322 阅读 · 0 评论 -
(PTA)练习7-4 找出不是两个数组共有的元素 (20分)
给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 ...原创 2019-12-17 12:40:25 · 472 阅读 · 0 评论 -
(PTA)习题6-7 简单计算器 (20分)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10实现代码...原创 2019-12-17 12:05:03 · 4535 阅读 · 1 评论 -
(PTA)习题8-7 字符串排序 (20分)
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue green white输出样例:After sorted:bluegreenredwhi...原创 2019-12-15 12:16:08 · 1325 阅读 · 0 评论 -
(PTA)习题9-3 平面向量加法 (15分)
本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1y1x2y2”的格式给出两个二维平面向量v1=(1,y1)和v2=(x2,y2的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。输入样例:3.5 -2.7 -13.9 8.7输出样例:(-10...原创 2019-12-15 00:35:24 · 861 阅读 · 0 评论 -
(PTA)习题9-1 时间换算 (15分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00:10代码如下:#include<stdio.h&...原创 2019-12-15 00:13:59 · 1785 阅读 · 1 评论 -
(PTA)习题7-2 求一批整数中出现最多的个位数字 (20分)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小...原创 2019-12-12 11:18:14 · 391 阅读 · 0 评论 -
(PTA)习题4-11 兔子繁衍问题 (15分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9#include<stdio.h>int main(...原创 2019-12-08 10:28:43 · 540 阅读 · 0 评论 -
(PTA)习题6-3 使用函数输出指定范围内的完数 (20分)
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int ...转载 2019-12-06 10:57:36 · 3364 阅读 · 0 评论 -
(PTA)6-7 统计某类完全平方数 (20 分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。实现代码如下:int IsTheNumber ( const int N ){ int m=sqrt(N); int a[10]={0}; int i=0; int c=N;//因为N为const常量,所以不能改变N的值,所以用c来代替N ...原创 2019-11-15 19:31:29 · 455 阅读 · 0 评论 -
(PTA)6-6 求单链表结点的阶乘和 (15 分)
本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。其中单链表List的定义如下:typedef struct Node *PtrToNode;struct Node { int Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode L...原创 2019-11-15 15:56:59 · 449 阅读 · 0 评论 -
输入一个十六进制的字符串转换为十进制的整数
在十六进制中0到9的字符依次对应十进制的0到9;十六进制中的a到f对应十进制中的10到15;其中a到f不分大小写,编写一个程序输入一个十六进制的字符串,输出对应的十进制整数。代码如下:#include<stdio.h>#include<string.h>#include<math.h>int main(){ char ch; int j = 0;...原创 2019-12-09 09:27:09 · 2181 阅读 · 0 评论 -
关于字符串函数的一些小总结
在C语言中,也有许多关于字符串的操作,下面是一些常用的函数总结下面介绍的函数有:toupper();//将字符转换成大写字母tolower();//将字符转换成小写字母strlen();//返回字符数组的长度strcat();//里面有两个参数,返回将两个参数相连接后的字符数组strlwr();//将字符数组转换成小写strupr();//将字符数组转换成大写strcmp();//...原创 2019-11-23 20:45:00 · 247 阅读 · 0 评论 -
判断素数
素数即那些只能被一或自身整除的数,1不是素数,2是素数,要求输入一个数之后,判断其是不是素数并输出。代码如下:#include<stdio.h>#include<math.h>int prime(int n);int main(){ int n; scanf("%d", &n); if (prime(n) != 0) printf("%d是素数...原创 2019-11-13 09:39:51 · 299 阅读 · 0 评论 -
数组存储超过整形范围的数
数组存储超出整形范围的数例如在求阶乘的运算中,当求的阶乘过大时,往往就容易超出了整型的存储范围,因此,此时适合用数组来存储数据。下面来结合一道具体的题:(PTA)6-10 阶乘计算升级版 (20 分)本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负...原创 2019-11-12 14:43:56 · 1324 阅读 · 1 评论 -
C语言递归的简单理解
递归的简单理解简单来说,递归就是直接或者间接的调用函数自己。下面举个简单的例子来理解如何直接或间接的调用自己:例如下面一段代码,要求用递归求n的阶乘:int factorial(int n){ if(n==0) return 1; else return factorial(n-1)*n;}下面举几个具体的例子来理解:——(PTA)习题10-6 递归求Fabonacc...原创 2019-11-11 21:09:46 · 710 阅读 · 0 评论 -
C语言求最大公约数和最小公倍数
C语言实现求最大公约数GCD,和最小公倍数LCMint GCD(int a,int b){return ((a%b)?GCD(b,a%b):b);}int LCM(int a,int b){return a*b/GCD(a,b);}下面是一些相关的应用:(PTA)7-33 有理数加法 (15 分)#include<stdio.h>#include<s...原创 2019-11-10 21:15:04 · 732 阅读 · 0 评论 -
C语言两种基本查找方法
C语言两种基本的查找方法顺序查找和二分法查找一,顺序查找顾名思义,顺序查找就是按照一个一个的顺序从第一个开始找。具体代码如下:#include<stdio.h>int main(){ int flag = 0; int a[10]; printf("请输入五个数字:"); for (int i = 0; i < 5; i++) { scanf("%d"...原创 2019-11-10 19:40:45 · 5268 阅读 · 0 评论 -
math.h常用函数
sqrt() //开根号pow(a,b) //返回a的b次方fabs() //返回绝对值x=modf(a,*b) //x等于a的小数部分,b等于a的整数部分ceil(x) //返回x向上取整得到的值floor(x) //返回x向下取整的值cos(x) //返回x的cos值sin(x) //返回x的sin值具体实例代码如下:#i...原创 2020-02-06 14:13:19 · 1452 阅读 · 0 评论 -
ctype.h头文件常用函数
isspace() //传入字符是否为空格isdigit() //是否为数字isalnum() //是否为字母或数字isalpha() //是否为字母isupper() //是否为大写字母islower() //是否为小写字母以上函数的具体使用方法如下:#include<stdio.h>#include<ctype...原创 2020-02-06 12:23:40 · 503 阅读 · 1 评论