
C语言
文章平均质量分 77
傻帽子
做一个自信的女孩纸
展开
-
OS----进程调度及实现(C语言)
进程调度四种算法源代码运行结果总结四种算法先来先服务算法先来先服务调度算法是按照作业到达的先后次序进行调度,或者说是有优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后背作业队列中选择几个最先进入系统的作业,将他们调入内存,为它们分配资源和创建进程,然后将它放入就绪队列。每次进程调度就从酒席队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行,该进程一直运行到完成或发生某事件而阻塞后,进程调度程序才将处理及分配给其他进程。短作业优先算法短作业优先调度算法是以作业原创 2021-06-27 07:40:53 · 1048 阅读 · 3 评论 -
操作系统----银行家算法(C语言实现)
银行家算法主要思想源代码运行结果主要思想银行计算法是判断系统中是否安全,并且允许其他进程来申请这里的资源,任何进程来申请资源时,必须先登记该进程对资源的申请的要求然后又系统检查当前资源的状况,并用银行家算法和安全性算法来进行检查是否允许分配资源给该进程。通过课程设计,加深我们对利用银行家算法避免死锁的理解。该程序设计语言编写银行家算法和安全性算法,使系统资源能够分配合理,从而安全地进行,避免系统死锁运行不下去。源代码源码github的连接: link.#define _CRT_SECURE_NO原创 2021-06-27 07:21:04 · 2627 阅读 · 5 评论 -
C语言------打印能被三整除的数(100内)
输出100内能被三整除的数#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<Windows.h>#define MAX 100//输出100以内能被三整除的数int main(){//print存放表示输出的数int print=0;for (int i = 1; i < MAX; i++){print = 3 * i;//3的倍数if (print <= MAX){printf("原创 2020-10-20 18:26:31 · 11280 阅读 · 0 评论 -
C语言------猜数字游戏
C语言编写猜数字游戏猜数字游戏简单描述:1.根据提示信息输入choice的值,若是1,则开始游戏;若是2,则退出游戏.2.当游戏开始时,输入[0,100]内的任意一个数字.如果输入的数字input与要猜的数字toGuess相同时,则输出猜中了(A correct guess);如果输入的数字input小于要猜的数字toGuess时,则输出猜低了(low);若果输入的数字input大于要猜的数字toGues时,则输出猜高了(high);源代码:void game(){printf(“游戏开始了\n原创 2020-10-18 12:50:52 · 300 阅读 · 0 评论 -
C语言------使用qsort排序
排序问题描述:对一个数组进行排序(升序或降序)比较函数如果返回值<0,表示被减数小于减数,不交换.如果返回值>0,表示被减数大于减数,则交换.如果返回值=0,表示被减数等于减数,不交换.int cmp(const int* a,const int* b){ //升序排列 return (*a - *b); //降序排列 //return (*b- *a);}打印函数void print(int* a,int size){ for (int i = 0;原创 2020-11-27 23:39:57 · 182 阅读 · 0 评论 -
C语言------简单计算器(加减乘除)
简单计算器问题描述实现两个整数的相加,相减,相乘和相除操作,使用转移表.主要函数相加int add(int a, int b){ return a + b;}相减int sub(int a, int b){ return a - b;}相乘int mul(int a, int b){ return a*b;}相除int divi(int a, int b){ if (b != 0){ return a / b; } else{ pri原创 2020-11-27 22:34:07 · 7076 阅读 · 0 评论 -
C语言------模拟实现atoi
模拟实现atoi主要思想:将字符串转换成整数1.如果字符串是空串,返回02.如果遇到数字字符和符号字符,将其转换,并往后找下一个,遇到其他字符就结束了3.例如:“1A2” 则返回1源代码///模拟实现atoi//将C字符串解析成整数//在解析成十进制整数的过程中,遇到数字,正负符号才开始转换//和遇到空格字符,不直接返回,而是往后找.//遇到其他的就结束转换.//比如1A2,就转换成了1,因为其遇到A就结束了转换了,后面的就不执行了.#include<stdio.h>原创 2020-11-26 02:03:34 · 202 阅读 · 0 评论 -
C语言------模拟实现strncat
模拟实现strncat主要思想:将一个字符串中的前num个字节链接到另一个字符串的后面,实现两个字符串的拼接.链接部分代码将一个字符串的指针指向该字符串的末尾,将另一个的前num 个拷贝上去,最后以 ‘\0’ 结尾char* dest = destination+strlen(destination);for (size_t i = 0; i < num; i++){ *(dest++) = *(source++); } //字符串末尾以 '\0' 结尾 *dest = '原创 2020-11-26 01:50:56 · 431 阅读 · 0 评论 -
C语言------模拟实现strncpy
模拟实现strncpy主要思想:将一个字符串的前num个字符拷贝到另一个字符数组中,并以 ‘\0’ 结尾.前num个字符的拷贝for (size_t i = 0; i < num; i++){ *(destination++) = *(source++); }源代码#define _CRT_SECURE_NO_WARNINGS#define _crt_secure_no_warnings#include<stdio.h>#include<stdli原创 2020-11-26 01:10:49 · 194 阅读 · 0 评论 -
C语言------通讯录的实现
通讯录主要实现5个功能,对通讯录中的数据增,删,改,查,排的基本操作。结构体:个人信息结构体typedef struct Person{ char name[1024]; char sex[1024]; int age; char telephone[1024]; char address[1024];}Person;整个通讯录结构体typedef struct AddressBook{ Person person[PERSON_MAX]; //通讯录中有效的联系人个数原创 2020-11-24 01:47:47 · 270 阅读 · 0 评论 -
C语言------模拟实现memcpy和memmove
模拟实现memcpy和memmove内存函数memcpy和memmove源代码//模拟实现memmove#include<stdio.h>#include<stdlib.h>void* myMemcpy(void* dest, const void* src, size_t num){ if (dest == NULL || src == NULL){ return NULL; } char* dest1 = (char*)dest; char* src原创 2020-11-24 01:24:33 · 227 阅读 · 0 评论 -
C语言------冒泡排序
冒泡排序以升序为例双层for循环,外层循环表示进行多少趟;里层循环表示比较相邻两个元素的大小;每进行一趟循环,最小的元素就到了数组的最开始.打印数组void print(int* p, int size){ for (int i = 0; i < size; i++){ printf("%d\t", p[i]); } printf("\n");}冒泡排序升序void bubbleSort(int* p, int size){ //[0,bound)表示已排原创 2020-11-20 14:05:53 · 401 阅读 · 0 评论 -
C语言------判断字节序
判断大小端核心思路:取出一个int的最低地址对应的字节,看看是高位还是低位.int在32位系统中占四个字节,char占一个字节,当对p2指针解引用时,其结果只是一个字节的数.在计算机中,一个字节(Byte)占八个比特位(位),四个比特位(bit)为一个16进制数,因此一个字节可以用两个16进制数表示,对p2节引用的结果就为两个16进制的数.为了方便,在初始化num时直接就用16进制表示(0x开头).直观可以看出11是高位的一个字节,44是低位的一个字节p2指针指向该元素的首地址(低地址),地原创 2020-11-20 13:26:36 · 1748 阅读 · 0 评论 -
C语言------打印杨辉三角
杨辉三角主要思想第一列全为1其他位置均为该位置左上角元素和该元素正上方元素之和源代码:#include<stdio.h>////打印杨辉三角#define LAYER 6void print(int a[LAYER][LAYER]){ printf("杨辉三角\n"); for (int row = 0; row < LAYER; row++){ for (int col = 0; col < LAYER; col++){ if (a[row原创 2020-11-20 12:48:26 · 189 阅读 · 0 评论 -
C语言------扫雷游戏
扫雷游戏简单描述:输入要要扫的位置.如果是雷,则游戏失败.如果将所有不是雷的位置都扫了一遍,则游戏胜利.主要细节初始化(玩家扫雷图,地雷布局图)展示出来的地图(玩家能看到的地图)showMapfor (int row = 0; row < ROW; row++){ for (int col = 0; col < COL; col++){ showMap[row][col] = '*'; } }地雷的布局地图(玩家看不到的地图)mineMapfo原创 2020-11-10 12:14:14 · 356 阅读 · 0 评论 -
C语言------三子棋游戏
三子棋游戏问题描述:在一个3*3的棋盘中,只要一条线上出现三个一样的棋子就获胜(玩家或电脑);如果棋盘已经放满还未出现三个棋子一条线则打成平手。具体细节:三个棋子一条线在一行或一列实现三个棋子一条线 //行 for(int row=0;row<ROW;row++){ if(checkbox[row][0]!=' ' &&checkbox[row][0]==checkbox[row][1] &&checkbox[row][0]==ch原创 2020-11-05 18:17:12 · 976 阅读 · 3 评论 -
C语言------二分查找
二分查找有序数组中查找具体某个数条件:数组为有序数组(升序或降序)查找的思想:在有序数组中查找具体某个数,如果有,输出该数所对应的下标;如果没有,输出未找到.具体思想:若为升序排列的数组,取数组中间元素与待查找的数比较,若待查找的数小于中间元素,则在数组左半部分查找;若待查找的数大于中间元素,则在数组右半部分查找;若相等,输出元素下标.源代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<Windows.h&g原创 2020-10-22 15:54:11 · 511 阅读 · 0 评论 -
C语言------输出9*9乘法口诀表
输出9*9乘法口诀表**主要思想:**使用两层循环控制行数和列数源代码:在这里插入代码片#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<Windows.h>#include<stdlib.h>int main(){ //在屏幕上输出9*9乘法口诀表 //使用两重循环 //1.第一层循环表示第几行 //2.第二层循环控制每一行所要打印几个表达式 for (int i = 1; i &l原创 2020-10-22 15:29:27 · 652 阅读 · 0 评论 -
C语言------猜数字游戏
猜数字游戏简单描述1.根据提示信息输入choice的值,若是1,则开始游戏;若是2,则退出游戏.2.当游戏开始时,输入[0,100]内的任意一个数字.如果输入的数字input与要猜的数字toGuess相同时,则输出猜中了(A correct guess);如果输入的数字input小于要猜的数字toGuess时,则输出猜低了(low);若果输入的数字input大于要猜的数字toGues时,则输出猜高了(high);源代码::在这里插入代码片...原创 2020-10-22 15:19:14 · 235 阅读 · 0 评论 -
C语言------打印100~200之间的素数
打印100~200之间的素数问题描述:判断从100-200之间的数是否为素数,是素数,则打印出来#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<Windows.h>#include<math.h>//#define MAX 100//判断素数,如果是素数,则打印void Prime(int num){ int i = 0; for (i = 2; i < (num / 2);原创 2020-10-22 14:37:41 · 175 阅读 · 0 评论