- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 进程调度之优先级算法分析(C++实现)
1. 优先权调度算法 为了照顾紧迫型进程获得优先处理,引入了优先权调度算法。它从就绪队列中选择一个优先权最高的进程,让其获得处理器并执行。这时,又进一步把该算法分为两种方式:1)非抢占式优先权调度算法 在这种方式下,系统一旦把处理器分配给就绪队列中优先权最高的进程后,该进程就占有处理器一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。系统这时才能将处理器分配给另一个优先权高的进程。这种方式实际上是每次将处理器分配给当前就绪队列中优先权最高的进程。它常用于批处理系统中,也可用于某些对时间要求不
2020-10-28 22:22:42 7583 6
原创 建立一个NXN的矩阵,矩阵元素构成规律:最外层元素全为1,从外向内第二层为2,依次类推(C语言实现)
#include <stdio.h>#define N 5int main(){ int a[N][N],i,j,k,m; if(N%2==0) m=N/2; else m=N/2+1; for(i=0;i<m;i++) { for(j=i;j<N-i;j++) a[i][j]=a[N-i-1][j]=i+1; for(k=i+1;k<N-.
2020-07-07 11:43:20 3732
原创 直接插入排序算法(C语言实现)
#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){ int a[10],i,j,t; srand((unsigned int)time(NULL)); for(i=0;i<10;i++) a[i]=rand()%100; ...
2020-04-20 17:57:03 8173
原创 C数据输出printf("%+-6d%+-6d",a,b);
若有定义:int a=1234, b=-5678;用语句 printf("%+-6d%+-6d",a,b); 输出,以下正确的输出结果是( C)+-1234+-5678(最前面和后面均无空格)+1234 -5678(最前面有一个空格,中间有一个空格)+1234 -5678 (中间有一个空格,最后有一个空格)1234 -5678 (中间有两个空格,最后有一个空格)解析:...
2020-03-19 10:07:43 5111 3
原创 C语言实现中英文混合字符串截取
#include <stdio.h>#include <stdlib.h>#include <string.h>void fun(int m){ char a[100]="china中国verygood"; int len=strlen(a); int i; int n=0,j=0; int num[10...
2020-01-19 14:33:43 1750 2
原创 反汇编分析函数传参,调用,执行过程中堆栈变化。
eip保存的是将要执行的下条指令的地址esp 栈顶指针 保存栈顶地址ebp 栈底指针 保存栈底地址push 2 : sub esp,4 mov dword ptr ss:[esp],2执行完call 指令后有三处变化,说明我们上述分析没有错误。push ebp :可...
2020-01-16 16:28:56 868
原创 通过汇编指令影响标志寄存器位
1、进位标志CF(Carry Flag):如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。2、奇偶标志PF(Parity Flag):奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。 如果最低有效字节“1”的个数为偶数,则PF的值为1,否则其值为0。3、辅助进位标志AF(Auxiliary Carry Flag):在发生下列情况...
2020-01-15 17:14:34 1810
原创 用两种方式实现代替 pop esp ,push esp
使用2种方式实现:push esp 第一种方式: mov dword ptr ss: [esp-4],esp sub esp,4 第二种方式: mov dword ptr ss:[esp-4],esp lea esp,dword ptr ss:[esp-4] 使用2种方式实现:pop esp...
2020-01-13 18:35:59 1733 1
原创 海滩上有一堆桃子,五只猴子来分。(C语言实现)
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?分析:设海滩上原来有x个桃子,则第一只猴子分完桃子之后剩下的桃子x1=x-1-(x-1)/5=(4*(x-1))/5...
2020-01-06 19:01:30 10015 3
原创 一个正整数加上100之后是完全平方数,再加上100之后还是完全平方数, 编程求出这样的数并输出(在10000以内C语言实现)
#include <stdio.h>#include <math.h>int main(){ int i,j,k; for(i=1;i<10000;i++) { j=sqrt(i+100); k=sqrt(i+268); if(j*j==i+100 && k*k==i+...
2019-12-18 18:27:03 3842 1
原创 快速排序 (C语言实现)
#include <stdio.h>#define N 10#include <time.h>void QuickSort(int a[],int left,int right){ if(left < right) { int low =left; int high = right; in...
2019-12-15 20:38:08 186
原创 自定义字符串复制函数
#include <stdio.h>void mystrcpy(char *str1,char *str2){ int i=0; for(i=0;str2[i];i++) { str1[i]=str2[i]; } str1[i]='\0';}int main(){ char a[100],b[20]; ...
2019-12-03 10:42:30 1939
原创 自定义字符串连接函数(mystrcat(char *str1,char *str2))
#include <stdio.h>void mystrcat(char *str1,char *str2){ char *t; while(*str1!='\0') { str1++; } t=str1; while(*str2!='\0') { *t++=*str2++; }...
2019-12-03 10:21:06 8768 3
原创 自定义函数比较两个字符串的大小
#include <stdio.h>int mystrcmp(char *str1,char *str2){ /*c=0;相等 c>0即第一个字符串大于第二个字符串 c<0即第一个字符串小于第二个字符串 */ int i,c; for(i=0;str1[i]||str2[i];i++) { if(...
2019-12-03 10:02:29 8319 1
原创 求子串在主串中的位置
#include <stdio.h>int main(){ char s[20],a[10],i,k,j=0; gets(s); gets(a); for(i=0;s[i];i++) { k=i; for(;s[k];k++)//从i位置开始,遍历主串 { if(s[k]!=a[j++...
2019-12-03 09:35:54 3493
原创 将一个整数逆序输出
#include <stdio.h>int main(){ int num; scanf("%d",&num); while(num)//非零值即为真值,即num不为0是一直循环 { printf("%d",num%10); num/=10; } return 0;}...
2019-11-25 18:27:37 10217 3
原创 //求a+aa+aa+...+aaa..a n项和
第一种方法原理:在前一项的基础上扩大十倍加a 即 可以表示为temp=temp*10+a; 注:temp必须赋初值为0#include <stdio.h>int main(){ int a,n,i,sum=0,temp=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { ...
2019-11-25 18:21:49 1553
原创 求一个数是几位数
#include <stdio.h>int main(){ int num,count=0; scanf("%d",&num); while(num!=0) { num/=10; count++; } printf("%d",count);}
2019-11-25 18:05:36 1892
原创 求出所有的水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)#include <stdio.h>int main(){ int i,a,b,c; for(i=100;i<1000;i++) { a=i/100;//百位 b=i%100/10;//十位 也可以写成b...
2019-11-25 17:32:03 19208
原创 删除指定下标的元素
#include <stdio.h>#define N 10int main(){ int a[N],i,k,j=0; for(i=0;i<N;i++) scanf("%d",&a[i]); scanf("%d",&k);//输入要删除元素的下标 if(k>=0&&k<N) ...
2019-11-25 17:20:00 2534
原创 删除指定的元素
#include <stdio.h>#define N 10int main(){ int a[N],i,num,temp; for(i=0;i<N;i++) scanf("%d",&a[i]); scanf("%d",&num); for(i=0;i<N;i++) if(a[i]=...
2019-11-25 17:10:00 158
原创 顺序查找法
#include <stdio.h>#define N 5int main(){ int a[N],i,num; for(i=0;i<N;i++) scanf("%d",&a[i]); scanf("%d",&num); for(i=0;i<N;i++) { if(a[i]=...
2019-11-25 16:46:48 179
原创 折半查找法(C语言实现)递归
二分查找(又称为折半查找)是在有序序列中查找比较多的查找算法,基本思路:设有一个从小到大的序列,取中间的元素m进行比较,如果等于需要查找的元素x则返回元素m的下标,若x大于m则再从右边的区间查找,若x小于m则再从左边的区间查找,这样每次减少一半的查找范围。时间复杂度为O(lgn),查找速度相对顺序查找要快很多,但是查找的数据序列必须是有序序列(即数据是从小到大或从大到小排序的).第一种方法...
2019-11-25 16:31:10 10273
原创 矩阵的转置
#include <stdio.h>#define N 3int main(){ int a[N][N],i,j,temp; printf("原始矩阵为:\n"); for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(...
2019-11-23 21:27:52 643
原创 方阵副对角线元素之和
#include <stdio.h>#define N 3int main(){ int a[N][N],i,j,sum=0; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0;i<N;i++) ...
2019-11-23 21:05:23 1676 1
原创 方阵主对角线元素之和
第一种方式#include <stdio.h>#define N 3int main(){ int a[N][N],i,j,sum=0; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0,j=0;i<N&a...
2019-11-23 20:58:55 4990
原创 二维数组的最大值和最小值
#include <stdio.h>#define N 3#define M 4int main(){ int a[N][M],i,j,max,min; for(i=0;i<N;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); max=a[0][0];...
2019-11-23 20:45:41 7658 2
原创 矩阵的周边元素之和
#include <stdio.h>#define M 3#define N 4/*1 2 3 45 6 7 89 10 11 12*/int main(){ int a[M][N],i,j,sum=0; for(i=0;i<M;i++) { for(j=0;j<N;j++) { ...
2019-11-23 20:10:52 5949
原创 杨辉三角
#include <stdio.h>#define N 10int main(){ int a[N][N],i,j; for(i=0;i<N;i++) a[i][0]=1; for(i=1;i<N;i++) a[i][i]=1; for(i=2;i<N;i++) for(j=1;j...
2019-11-23 19:48:04 232
原创 鞍点c语言实现
//鞍点为矩阵元素所在行的最大值,以及所在列的最小值。#include <stdio.h>#define N 5int main(){ int a[N][N],i,k,j,t,max; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0;i...
2019-11-23 19:24:21 1523 1
原创 求输入字符串的单词的个数
第一种方式#include <stdio.h>#define N 100main(){ char s[N]; int i,tag=0,num=0;//0统计单词个数,1不统计单词个数 gets(s); for(i=0;s[i]!='\0';i++) { if(s[i]==' ') tag=0; if(s[...
2019-11-23 19:10:14 943
原创 输出前10项的斐波那契数列
第一种方式#include <stdio.h>#include <math.h>int main(){ int a=1,b=1,c,i; for(i=0;i<10;i++) { if(i==0||i==1) c=1; else { c...
2019-11-16 21:32:42 12555
原创 用公式π/4=1-1/3+1/5-1/7...求π的近似值,直到发现某一项的绝对值小于10^-6(1e-6)为止(该项不累加)
#include <stdio.h>#include <math.h>int main(){ int tag=1,n=1;//tag表示项数的正负号 double sum=0.0,t=1.0; while(fabs(t)>1e-6)//fabs(t)求t的绝对值 { sum=sum+t; tag...
2019-11-16 21:09:53 29575 2
原创 现有1角,2角,5角,要组成1元有多少种方法?
#include <stdio.h>int main(){ int i,j,k,count=0; for(i=0;i<=10;i++) for(j=0;j<=5;j++) for(k=0;k<=2;k++) if(1*i+2*j+5*k==10)//此处不能写成if(0.1...
2019-11-16 20:52:36 3561
原创 将5个数逆序存放后输出
#include <stdio.h>#define N 5int main(){ int a[N],i,t; printf("请输入5个数:\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N/2;i++) { t=a[i];...
2019-11-16 20:42:22 3720
原创 选择排序法
#include <stdio.h>#define N 10#include <time.h>int main(){ int i,j,a[N],t,min; srand((unsigned)time(NULL));//置随机数种子 for(i=0;i<N;i++) { a[i]=rand()%100;//...
2019-11-16 20:29:53 111
原创 冒泡排序法
#include <stdio.h>#define N 10#include <time.h>int main(){ int i,j,a[N],t; srand((unsigned)time(NULL));//置随机数种子 for(i=0;i<N;i++) { a[i]=rand()%100;//0-99...
2019-11-16 20:17:19 172
原创 计算1到10之间奇数之和及偶数之和
#include <stdio.h>int main(){ int a,b,c,i; a=c=0; for(i=0;i<=10;i+=2) { a+=i; b=i+1; c+=b; } printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",...
2019-11-15 11:43:07 19885 1
原创 根据所给的年、月、日、计算出该日是这一年的第几天
#include <stdio.h>int isLeap(int year){ if(year%4==0&&year%100!=0||year%400==0) return 1; else return 0;}int main(){ int year,month,day,days=0; scan...
2019-11-12 19:46:22 689
原创 编程序找出1000之内的所有完数,并输出其因子
#include <stdio.h>int main(){ for(int i=2;i<=1000;i++) { int sum=0; for(int j=1;j<i;j++) { if(i%j==0) sum+=j; } if(sum==i) ...
2019-11-12 18:36:01 14823 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人