![](https://img-blog.csdnimg.cn/2020041610493541.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言学习
文章平均质量分 89
在学习C Primer Plus一书中的读书笔记,个人心得以及问题解决,其中也包含我大学时期的C语言学习的记录。
云杉木屋
流浪在北方蔚蓝的路
展开
-
关于递归解决全排列问题的研究
递归是一个非常重要的解题方法和思路,我们在生活中很多地方都用到了递归概念。现有一字符串序列,要求我们对其进行全排列,例如“ab”的全排列为“ab”和"ba",编写程序解决问题。在数学中全排列问题是一个非常常见的问题,在概率问题中经常出现,通常全排列都是用大写字母A来表示。我们在数学中确实经常做到全排列的题,但是,我们很少让写出全排列,大部分问题都是让我们求出对于一个序列,全排列的个数,有可能确...原创 2020-02-02 20:41:56 · 1347 阅读 · 0 评论 -
双向链表结构实现线性表
结合之前的代码和学习,我又写了双向链表实现线性表。双向链表在找前驱后继有比较好的优势。操作命名是严格按照严蔚敏版数据结构写的,大家复习时可以参考一下。1.测试代码(main.cpp)#include <iostream>#include "dulink_list.h"using namespace std;int main() { dulink_list L; while(1){ int flag = menu(); if(fla原创 2020-12-10 20:50:59 · 291 阅读 · 0 评论 -
线性表链式结构的基本实现
以下代码是严蔚敏版数据结构的线性表链式结构的基本实现,同时结合王道复习书中的定义方法。函数名是严格按照严蔚敏版的数据结构来的,欢迎大家指正学习。目前各个函数基本测试完毕,能够正确运行,希望大家学习测试,如有错误请联系我。1.操作集:link_list.h#ifndef link_list_h#define link_list_h#include <cstdlib>typedef struct LNode{ int data;//数据存储部分 struct LNo原创 2020-12-05 18:59:46 · 238 阅读 · 0 评论 -
线性表的顺序存储结构基本实现
以下代码是按照严蔚敏版的数据结构命名格式写的数据结构基本实现,线性表的定义是按照书上写的,操作具体实现方法是我自己写的,分为两个部分,一个部分是操作集部分,另一个部分是测试用代码部分,目前我已经基本测试完毕,功能全部可用且正确,欢迎大家学习指正。如能帮到大家,我非常高兴。1.操作集:linear_list.h#include <cstdlib>#define MaxSize 100typedef struct { int *data_elem; int lengt原创 2020-12-05 10:24:23 · 382 阅读 · 1 评论 -
C++实现行列式的相关操作
目录一.前言二.行列式运算操作集1.概览2.行列式的定义3.行列式的输出与输入4.行列式行与行,列与列的相加5.行列式的行交换与列交换6.行列式的行提取公因数与列提取公因数7.行列式的转置8.判断一个行列式是否是三角阵9.求余子式和代数余子式10.求行列式的值三.总结一.前言最近在学习C++,数据结构以及线性代数,我突发奇想,为什么不把这几个东西放在一起学习呢?于是我想把一些可以用C++语言描述的线性代数上的操作写出来,这样一来也可以加深我的.原创 2020-11-29 16:26:52 · 3575 阅读 · 0 评论 -
求组合数详解
7-1求组合数(15分)本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式:按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。输入样例:2 7输出样例:result = 21作者..原创 2020-10-24 21:20:53 · 486 阅读 · 0 评论 -
7-2 两个有序链表序列的交集 (20分)
7-2两个有序链表序列的交集(20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 5作者DS课程组单位浙江大..原创 2020-10-24 21:13:43 · 1052 阅读 · 0 评论 -
7-1 两个有序链表序列的合并 (20分)
7-1两个有序链表序列的合并(20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1 2 3 4 5 6 8 10作..原创 2020-10-24 21:12:17 · 11669 阅读 · 2 评论 -
2020-10-24(链表习题 6-1学生成绩链表处理)
6-1学生成绩链表处理(20分)本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:struct stud_node *createlist();struct stud_node *deletelist( struct stud_node *head, int min_score );函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下:st..原创 2020-10-24 21:10:29 · 1463 阅读 · 1 评论 -
C++基础学习总结
突兀的学习总结开始了。一.C++代码基础框架#include <iostream>using namespace std;int main(){ system("pause"); return;}一个C++代码的基本框架就是这样,这个最基本的代码包含了“头文件引入”,“命名空间声明”,“主函数体”三个部分。我们当然不能将它作为所有代码的母版,这一点尤其值得强调,但是在初学阶段,我们所写的大部分代码都是这个样子,一般比赛的代码也都是这个基本结构。二.输出原创 2020-10-19 12:42:00 · 285 阅读 · 0 评论 -
单链表实现线性表操作(带头节点)
为了学习数据结构我决定在自己跟着书打一遍,跟的是王道考研教材,命名没有严格按照严蔚敏老师的来。所以注意不要学我写的命名。为了加深我对这个板块儿学习的理解,我打算在这里总结一遍,反思教材的同时加入自己的理解。链式结构和顺序结构链式结构是一种物理结构,也就是数据在计算机中存储的方式,顺序表采用的是顺序结构。二者不同之处在于顺序结构中每个元素都是紧挨在一起的,书上的说法是“它是用一组连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻”。我们通常用数组来申请一片连.原创 2020-10-16 20:12:00 · 1929 阅读 · 1 评论 -
操作系统实验(一)——进程调度
此文章为关于操作系统实验的讲解,在这一学期,我学习了操作系统,即然学习课程肯定有实验,第一个实验为进程的调度。进程调度有相当多的算法,比如最简单的先来先服务算法,时间片轮转算法,多级队列调度算法等。我将它们中的一部分写进了一个系统用于模拟进程调度,以帮助学习,在这里分享一下我的写法与思路。 当前代码中包含三种算法:先来先服务,短作业优先,高响应比优先。剩余的时间片...原创 2019-11-21 16:06:54 · 14894 阅读 · 2 评论 -
操作系统实验一(纯代码)
操作系统实验一,包含三个不同的调度,此为暂时备份,以后会公开发布博客//// main.c// 操作系统实验//// Created by 李若白 on 2019/11/12.// Copyright © 2019 李若白. All rights reserved.//// 进程调度算法:分别采用先来先服务算法、短作业优先算法、高响应比优先算法实现。// 系统结构...原创 2020-10-24 21:01:06 · 982 阅读 · 0 评论 -
判断上三角矩阵
7-2 判断上三角矩阵(15 分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是原创 2017-12-16 15:36:49 · 12021 阅读 · 1 评论 -
7-7 螺旋方阵(20 分)
7-7 螺旋方阵(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原创 2017-12-16 20:05:30 · 14761 阅读 · 1 评论 -
7-2 判断上三角矩阵(15 分)
7-2 判断上三角矩阵(15 分)上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三原创 2017-12-17 16:37:30 · 19853 阅读 · 1 评论 -
7-4 N阶楼梯上楼问题(15 分)
7-4N阶楼梯上楼问题(15分)N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。例如,当楼梯只有一阶时,只有一种方法;当楼梯有两阶时,可以每次跨一阶,跨两次,也可以每次跨两阶,跨一次,因此有两种方法。输入格式:输入包括一个整数N,(1<=N<46)。输出格式:输出当楼梯阶数是N时的上楼方式总数。输入样例1:3输出样例1:3输入样例2:4输出样例2:5#includ...原创 2018-03-31 21:53:41 · 4335 阅读 · 1 评论 -
7-1 单向链表2(15 分)
7-1单向链表2(15分)编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n(0<n<=9)和一组(n个)整数,建立一个单向链表,再输入一个整数 x,将链表中最后一个与x相等的整数删除。输入输出示例:括号内为说明输入样例:输出样例:#由于是考试题目所以没办法直接复制#代码:#include <st...原创 2018-06-23 17:17:11 · 6604 阅读 · 3 评论 -
链表的复习----头插与尾插有头链表
#此文章用于大一C语言的链表复习这里就不再上链表官方定义了,直接说我对链表的理解。链表相当于内存中一系列不连续的地址通过指针相互联系在一起,它需要通过结构体来实现,同时引入了节点的概念,即以前我们通过一个变量来储存数据,现在在链表中用节点来储存数据,因为在链表中,一个数据总伴随着一个指向下一个数据地址的指针,所以这种形式的变量需要用结构体来实现,一个结构体变量里有存储数据的子变量,还有存储下一个结...原创 2018-06-26 14:02:19 · 500 阅读 · 0 评论 -
暑假复习以及进阶-------递归函数
6-1使用递归函数计算1到n之和(5分)本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。函数接口定义:int sum( int n );该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。裁判测试程序样例:#include <stdio.h>int sum( int n );int m...原创 2018-07-13 12:21:35 · 541 阅读 · 0 评论 -
实验8-1-8 报数(20 分)
实验8-1-8报数(20分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是...原创 2018-08-12 15:41:09 · 5158 阅读 · 4 评论 -
6-2 函数实现字符串逆序(10 分)
本题要求实现一个字符串逆序的简单函数。函数接口定义:void f( char *p ); 函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样例:本题要求实现一个字符串逆序的简单函数。函数接口定义:void f( char *p );函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样原创 2017-12-24 14:50:07 · 45611 阅读 · 12 评论