
c语言
XITMan
这个作者很懒,什么都没留下…
展开
-
C语言-银行系统的简单实现(存钱,取钱,保存用户信息,销户,开户,转账,查询等功能,使用消息队列达到2个不同进程之间的相互通信)
主要分为两人大模块:客户端1、进入时的功能开户、销户、登录、解锁开户:输入姓名、身份证号、设置密码,如果开户成功,则服务器上保存一个账号信号(一个账号存一个文件,文件名建议是账号)。销户:输入帐号、密码,服务器询问是否确认销户,如果确认则服务器删除帐号文件,并记录帐号。登录:输入账号、密码,三次错误账号锁定。解锁:输入账号、身份证号解锁。2、登录成功:存钱、取钱、转账、查询、修改密码存钱:输入存钱金额取钱:输入取钱金额转账:目标帐号和要转的金额查询:不需要输入数据修改密码:原密码和新原创 2020-08-27 20:30:44 · 3777 阅读 · 3 评论 -
查找算法和排序算法(顺序查找,二分查找,块查找,哈希查找,冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序,计数排序,桶排序,基数排序)
算法的时间复杂度并不能代表算法的实际执行时间,有些时候看似复杂度高的速度反面快。查找算法:顺序查找:对待查找的数据没有要求,时间复杂度: O(n)二分查找:对待查找的数据必须有序,时间复杂度: O(logn)块查找:是一种数据处理的思想,不是特定的算法,当数据量过多时,可以先把数据进行分块处理,然后再进行查找,例如英语词典。哈希查找:数据 经过哈希函数 计算出数据在哈希表中的位置,然后标记,方便之后的查找,它的时间复试度最快能达到:O(1)。但是该算法有很大局限性,不适合浮点型、字符串型原创 2020-08-17 21:43:08 · 683 阅读 · 0 评论 -
数据结构总结(线性结构,树型结构,图型结构,顺序结构,链式结构)
一、什么是数据结构1、数据结构的起源1968年,美国的高纳德教授开设了一门基本算法的课程,开创了数据结构的先河。数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。数据结构+算法=程序 沃思凭借这名个论点,获得图灵奖,这句话展示出了程序的本质。2、数据结构的基本概念数据:所有能够输入到计算机中去描述事物的符号。数据项:有独立含义的数据最小单位,也叫域。数据元素:数据的基本单位也叫节点、记录。数据结构:数据元素和数据关系的集合。算法:数据结构所具备的功能,解决特定的问题的方法。3原创 2020-08-16 19:29:18 · 7558 阅读 · 2 评论 -
递归的实现(小案例)以及递归的优缺点的总结 斐波那契数列 汉诺塔问题 0-9全排列
递归是什么递归可以实现分治这种算法,就是把一个复杂的大问题,分解成若干个相同的小分问题,直到问题全部解决。递归案例斐波那契数列#include<stdio.h>int get_fibonacci(int number){ //第一个和第二个斐波那契数列值为1 if( 1==number || 2==number ) { return 1; } //第三项开始的斐波那契数列是前2项的和 else {原创 2020-07-15 21:05:20 · 643 阅读 · 0 评论 -
C语言小游戏(猜数字)
哈哈哈,很简单的一个小游戏,有兴趣的可以玩一下(虽然很low)。用rand和srand和time库来获取随机数。/*猜数字小游戏*/#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){ int number=0,count=0,i_s_number=0,min=0,max=100; srand((unsigned) time(NULL)); number=rand()%100;原创 2020-06-15 16:35:39 · 333 阅读 · 2 评论 -
c语言数组定义(详细)
数组:什么是数组:变量的组合,是一种定义变量的手段。定义:类型 数组名[数量];数组定义后,默认值同样不确定,因此也需要初始化。int arr[5] <==> int num1,num2,num3,num4,num5;使用:数组名[编号]编号 (下标) 从0开始,范围[0,数量-1]遍历:配合for循环从头到尾显示,循环变量i就当做数组的下标。int arr[5];f...原创 2019-12-04 20:16:25 · 22148 阅读 · 1 评论 -
C语言实例(成绩管理系统)可以实现学生和教师的登录,以及一些信息的修改和保存(较为完善)
有bug的话可以评论一下,嗯,我感觉一些输入的判断上可能还有些问题,非法输入判断可能不全面,其他的方面功能测试都可以,最开始的成绩信息要自己输入,我这里写的就一个教师 账号是:xiong 密码是:250。需要可以自行添加和修改,感觉我写的不好的大神轻点喷。。谢谢后面可能会优化一下。linux里面没有conio.h库,所以我用的是自己搞的getch.h库,代码放在最下面,需要的可以去拿。getch()是不放在缓冲区中,直接读取用户输入的第一个字符。/*学生成绩管理系统,分为教师界面和学生界面,教师界面需原创 2020-06-10 15:42:07 · 6135 阅读 · 2 评论 -
PAT乙级2020年5月1号线上模拟3题答案(7-1Knuth洗牌法 7-2三阶幸福数 7-3垃圾分类)
这里我学的是c,所以都是用c写的,大概的思路我都写了,希望对大家有帮助吧。7-1 Knuth洗牌法 (20分)Knuth 洗牌法是生成 { 1, 2, …, n } 的一个随机重排列的算法。与每次反复随机生成一个数字,直到获得一个不重复的新数字的算法不同,Knuth 洗牌法从原始序列 { 1, 2, …, n } 开始,逐次洗牌。洗牌的方法是从左到右,每轮从没确定的数字中随机抽取一个数,把它放...原创 2020-05-02 15:36:55 · 770 阅读 · 1 评论 -
pat乙级1011C语言
#include<stdio.h>int main(){ int n=0; long int c=0,a=0,b=0; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%ld %ld %ld",&a,&b,&c); if((a+...原创 2020-04-13 21:13:51 · 640 阅读 · 0 评论 -
pat乙级1003 C语言
首先我们要分析题目的要求,总结为:1.只能有‘P’ ‘A’ ‘T’这三个字母才能通过2.aPbTc 必须ab=c,a,b,c只能是A组成的(2,3讲的就是这个规律),P和T只能有一个。然后我们只需要知道P T的个数和位置以及是否有其他字符,ab是否等于c,就能够判断出YES还是NO;主要在于题目的分析吧,代码其实都简单的。#include<stdio.h>#include&...原创 2020-04-13 21:11:31 · 2030 阅读 · 3 评论 -
PAT乙级1024C语言
#include<stdio.h>#include<string.h>int main(){ char a[10000]; int c=0,E; scanf("%s",&a); E=strchr(a,'E')-a; for(int i=E+2;i<strlen(a);i++) { c=c*1...原创 2020-02-02 20:31:32 · 623 阅读 · 1 评论 -
PAT乙级1023C语言
#include<stdio.h>int main(){int a[10]={0};for(int i=0;i<10;i++){scanf("%d",&a[i]);}for(int i=1;i<10;i++){if(a[i]!=0){printf("%d",i);a[i]=a[i]-1;break;}}for(int i=0;i&l...原创 2020-01-31 19:27:23 · 568 阅读 · 0 评论 -
PAT乙级1022C语言
#include<stdio.h>int main(){int a=0,b=0,c=0,sum=0,k=0;int p[100]={0};scanf("%d %d %d",&a,&b,&c);sum=a+b;while(sum!=0){p[k]=sum%c;sum=sum/c;k++;}for(int i=k-1;i>=0;i–)...原创 2020-01-31 19:19:48 · 532 阅读 · 0 评论 -
PAT乙级1021C语言
```c#include<stdio.h>#include<stdlib.h>int main(){ int m=0,a[10]={0}; char str[1001]={0}; gets(str); m=strlen(str); for(int i=0;i<m;i++) { if(str[i]...原创 2020-01-30 20:46:18 · 563 阅读 · 0 评论 -
PAT乙级1020C语言
#include<stdio.h>int main(){double a=0,b=0,c=0,sumk=0,sums=0,sum=0;int n=0,m=0;scanf("%d %d",&n,&m);double k[n];double s[n];double ave[n];for(int i=0;i<n;i++){scanf("%lf",&...原创 2020-01-30 20:26:32 · 665 阅读 · 1 评论 -
PAT乙级1019C语言
#include<stdio.h>int main(){int n=0,h=0,l=0,m=0,temp=0;int a[4]={};scanf("%d",&n);m=n;do{for(int i=0;i<4;i++){a[i]=n%10;n=n/10;}if(a[0]==a[1]&&a[1]==a[2]&&a[2...原创 2020-01-29 21:00:45 · 634 阅读 · 1 评论 -
PAT乙级1018C语言
#include<stdio.h>int main(){int n=0;scanf("%d",&n);char c1,c2;int a_winB=0,a_winC=0,a_winJ=0,b_winB=0,b_winC=0,b_winJ=0,bw=0,aw=0,pj=0;for(int i=0;i<n;i++){scanf(" %c %c",&c1...原创 2020-01-28 21:19:45 · 689 阅读 · 2 评论 -
PAT乙级1004答案C语言版本
#include<stdio.h>struct student{char name[20];char number[20];int score;};int main(){int n;scanf("%d",&n);struct student stu[100];for(int i=0;i<n;i++){scanf("%s%s%d",stu[i]....原创 2020-01-14 21:05:41 · 1954 阅读 · 7 评论 -
pat乙级1001 1002题答案
1001:卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄...原创 2020-01-08 20:22:02 · 3965 阅读 · 3 评论