算法
CodeCatt
喜欢go语言
展开
-
二分查找题目的理解
关于leetcode二分查找题目的思路原创 2023-02-28 18:28:57 · 57 阅读 · 0 评论 -
脚本代码初级
Dim HwndExDim LDim THwndEx = Plugin.Window.SearchEx(“QQSGWinClass”,0,1)TracePrint HwndExMyArray = Split(HwndEx,"|")L = Clng(MyArray(0))T = Clng(MyArray(1))TracePrint LTracePrint TWhile i = 0Delay 500Call Plugin.Bkgnd.KeyPress(L, 82)Delay 500C原创 2022-02-11 18:42:07 · 355 阅读 · 0 评论 -
71.编写input()和output()函数的输入,输出5个学生的数据记录
#include <stdio.h>#define N 5struct student{ char num[6]; char name[8]; int score;}stu[N];input(struct student stu[]){ for(int i=0;i<N;i++){ printf("please input %d\n",i+1); printf("num is\n"); scanf原创 2022-01-26 19:58:14 · 1946 阅读 · 0 评论 -
70.写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
char型指针,当没有带号时,指的是内存的某一个位置,带号时,指的是这个位置上存储的内容。当它指向一个字符串时,指向的是字符串的第一位,当p++的时候,就是指针往后挪一位的意思#include <stdio.h>#include "time.h"#include <stdlib.h>int length(char*s){ int n=0; while (*s!='\0'){ n++; s++; } ret原创 2022-01-26 11:20:07 · 1220 阅读 · 0 评论 -
69.有n个人围成一圈,顺序排号。从第一个人开始报数(1到3报数),凡报到3的人退出圈子,问最后留下的原来第几号的那位
一个经典问题原创 2022-01-26 10:55:44 · 262 阅读 · 0 评论 -
68.有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
本题用了离散数学的一个公式来解决此题目比如:0 1 2 3 4 5 要变成 4 5 0 1 2 3可以把A看成0 1 2 3 B看成 4 5那么A逆就是3 2 1 0 B逆就是 5 4因为(A逆B逆)逆 =BA 所再将A逆B逆,再逆一次得到 4 5 0 1 2 3#include <stdio.h>#include "time.h"#include <stdlib.h>void reverse(int *a){}void print(int原创 2022-01-24 12:28:42 · 244 阅读 · 0 评论 -
C中常用的一些方法记录
1.随机函数#include <stdio.h>#include "time.h"#include <stdlib.h>int main(){ int a[10]; srand((unsigned)time(NULL)); for(int i=0;i<10;i++){ a[i]=rand()%100; printf("%d ",a[i]); }}2.定义int型指针并给其分配内存空间#inclu原创 2022-01-24 11:21:53 · 166 阅读 · 0 评论 -
67.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
思路:1.用随机函数生成一个长度为10的序列2.封装2个函数分别找到最大元素和最小元素,然后再分别把他们交换到数组头部和尾部#include <stdio.h>#include "time.h"#include <stdlib.h>void MaxInHead(int *a){ int temp; for(int i=0;i<10;i++){ if(a[0]<a[i]){ temp=a[0];原创 2022-01-24 11:02:19 · 907 阅读 · 0 评论 -
66.输入3个数a,b,c,按大小顺序输出
62-65题瓯都是画图题,这里先跳过思路:利用指针方法#include <stdio.h>//*p表示此指针指向的内存地址中存放的内容。void swap(int *p1,int *p2){ int p; p=*p1; *p1=*p2; *p2=p;}int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); int*p1,*p2,*p3; p1=&am原创 2022-01-19 21:04:10 · 384 阅读 · 0 评论 -
61.打印出杨辉三角形
#include <stdio.h>//打印出杨辉三角形,要求打印出10行int main(){ int temp; int a[11][11]; for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ if(j==1||j==i){ a[i][j]=1; printf("%d ",a[i][j])原创 2022-01-19 20:32:40 · 761 阅读 · 2 评论 -
55.学会使用按位取反~
#include <stdio.h>int main(){ int a,b; a=8; b=~a; printf("%d\n",b); a=~a; //%x代表用16进制表示 printf("%x\n",a);}做这种运算都是在二进制的条件下进行的,只是输入输出形式不是二进制而已...原创 2022-01-19 20:21:27 · 334 阅读 · 0 评论 -
54.取一个整数a从右端开始的4~7位
#include <stdio.h>//%o意思是以八进制整型式输出整数//没看懂这题是干嘛的int main(){ unsigned a,b,c,d; scanf("%o",&a); b=a>>4; c=~(~0<<4); d=b&c; printf("%o\n%o\n",a,d);}没看懂这题是干嘛的...原创 2022-01-19 20:15:18 · 284 阅读 · 1 评论 -
53.学会使用按位异或^
#include <stdio.h>int main(){ int a,b; //这里的077是八进制的意思 a=077; //000 111 111 //000 000 011 //这2个数做与运算 //000 111 100 结果 b=a^3; printf("a^3=%d\n",b); //000 111 100 //000 000 111 //这两个数做与运算 //000 11原创 2022-01-18 13:08:21 · 160 阅读 · 0 评论 -
52.学会使用按位或
#include <stdio.h>int main(){ int a,b; //这里的077是八进制的意思 a=077; printf("a=%d\n",a); //000 111 111 //000 000 011 //这2个数做或运算 //000 111 111 结果 b=a|3; printf("b=a|3=%d\n",b); //000 111 111 //000 000 111原创 2022-01-17 21:08:34 · 213 阅读 · 0 评论 -
51.学会使用按位&
#include <stdio.h>int main(){ int a,b; a=077; //0000 0111 0111 //0000 0000 0011 //这2个数做与运算 b=a&3; printf("a&b=%d\n",b); //0000 0000 0011 //0000 0111 0111 //这两个数做与运算 b&=7; //b=b&7 p原创 2022-01-17 17:11:35 · 168 阅读 · 0 评论 -
50.#include的应用练习
#include <stdio.h>//这里是用绝对路径引用#include "C:\Users\hsh\CLionProjects\untitled3\test.h.c"int main(){ int i=10; int j=20; if(i LAG j) printf("%d larger than %d\n",i,j); else if(i EQ j) printf("%d equal to %d\n",i,j);原创 2022-01-17 17:02:36 · 225 阅读 · 0 评论 -
49.#if #ifdef 和#ifndef 的综合应用
本文主要介绍c语言中条件编译相关的预编译指令,包括 #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined。#define 定义一个预处理宏#undef 取消宏的定义#if 编译预处理中的条件命令,相当于C语法中的if语句#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句#ifndef 与#if原创 2022-01-17 16:55:46 · 566 阅读 · 0 评论 -
48.宏#define命令练习(3)
#include <stdio.h>#define LAG >#define SMA <#define EQ ==int main(){int i=10;int j=20;if(i LAG j) printf("%d larger than %d\n",i,j);else if(i EQ j) printf("%d equal to %d\n",i,j);else if(i SMA j) printf("%d smaller than %原创 2022-01-17 15:37:32 · 107 阅读 · 0 评论 -
46.宏#define命令练习(1)
#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0#define SQ(x) (x)*(x)int main(){int num;int again=1; printf("program will stop if input value less than 50\n"); while(again) { printf("input number\n"原创 2022-01-17 15:14:10 · 251 阅读 · 0 评论 -
45.学习使用register定义变量的方法
register是做声明的,为了提高效率。C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫寄存器变量我们常用定义变量存放在内存中!而register是指寄存器变量。寄存器是cpu的存储部件,即是高速缓存,通常不大,最多几mb。定义这个变量适用于频繁使用某个变量,以加快运行速度,因为保存在寄存器中,省去了从内存中调用,要注意定义了这个变量后,不能取地址!!就是不能使用&符号,这与一般不同#include <stdio.h>#include <stdlib.h>原创 2022-01-17 14:59:35 · 1159 阅读 · 1 评论 -
44.学习使用external的用法
#include <stdio.h>#include <stdlib.h>int a,b,c;void add(){ int a; a=3; c=a+b;}int main(){ a=b=4; add(); printf("%d",c);}c的结果是7还是8呢这里声明的是外部变量但是在执行函数的时候又有一个相同的a变量,此时执行的是函数声明的那个变量...原创 2022-01-17 14:51:39 · 312 阅读 · 0 评论 -
43.学习使用static的另一种方法
#include <stdio.h>#include <stdlib.h>int main(){ int num=2; for(int i=0;i<3;i++){ printf("num=%d ",num); num++; { static int num=1; printf("static_num=%d",num); num原创 2022-01-17 14:44:04 · 178 阅读 · 0 评论 -
42.学习使用auto定义变量的用法
解题思路: auto自动存储类型,一般我们很少在程序中显示申明变量为auto类型。因为代码块中的变量缺省情况下就是这种类型,这种类型的变量存放于堆栈中,也就是说只有程序执行这些代码块时这种自动变量才会被创建,代码块执行结束后自动变量便被释放。#include <stdio.h>#include <stdlib.h>//学习使用auto定义变量的用法int main(){ int num=2; for(int i=0;i<3;i++){原创 2022-01-16 22:03:40 · 2249 阅读 · 0 评论 -
41.学习static定义静态常量的用法
#include <stdio.h>#include <stdlib.h>//学习static 定义静态变量的用法fun(){ int n=0; static static_n=0; printf("%d ",n); printf("%d ",static_n); printf("\n"); n++; static_n++;}int main(){ for(int i=0;i<3;i++){原创 2022-01-16 21:48:28 · 259 阅读 · 0 评论 -
40.逆序输出数组
#include <stdio.h>#include <stdlib.h>//将一个数组逆序输出int main(){ printf("please input array size\n"); int n; scanf("%d",&n); printf("please input array number\n"); //给一维数组分配空间 int *a = (int *)malloc(n*sizeof(int));原创 2022-01-16 21:43:14 · 169 阅读 · 0 评论 -
39,将一个元素插入有序数组
#include <stdio.h>#include <math.h>#include <stdlib.h>#include "time.h"//将一个数插入到一个有序数组中,仍然保持有序int main(){ printf("original array\n"); //留多一个位置给新插入的元素 int a[11]= {1,4,6,9,13,16,19,28,40,100}; for(int i=0;i<10;i原创 2022-01-16 21:22:45 · 648 阅读 · 0 评论 -
37.对10个数排序--选择排序
#include <stdio.h>#include <math.h>#include <stdlib.h>#include "time.h"//对10个数进行排序//素数一般指质数,用质数的方法来求//这里用到选择排序法int main(){ int a[10]; srand((unsigned)time(NULL)); for(int i=0;i<10;i++){ a[i]=rand()%100;原创 2022-01-16 20:23:10 · 209 阅读 · 0 评论 -
34.练习函数调用
32,33,35题都涉及文本颜色,编译器不兼容#include <stdio.h>#include <conio.h>//练习函数调用void hello_world(){ printf("Hello World\n");}void three_hellos(){ for(int i=0;i<3;i++){ hello_world(); }}int main(){ three_hellos()原创 2022-01-16 13:49:50 · 71 阅读 · 0 评论 -
31.输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
这题主要是加强switch的使用#include <stdio.h>//输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,那么继续判断第二个字母。//Monday Tuesday Wednesday Thursday Friday Saturday Sundayint main(){char letter; scanf("%s",&letter); switch (letter) { case'F':pri原创 2022-01-15 22:27:31 · 718 阅读 · 0 评论 -
30.判断是否是回文数,12321就是一个回文数
初级版本#include <stdio.h>//给出一个5位数,判断是否是回文数int main(){ int n; int a[5];//存放回文数每一位数的数组 scanf("%d",&n); int i=0; int temp; while (n!=0){ a[i]=n%10; i++; n/=10; } for(int j=0;j<i/2;j++){原创 2022-01-15 21:44:09 · 146 阅读 · 0 评论 -
29.给一个不多于5位的正整数,求它是几位数,逆序打印出各位数字
#include <stdio.h>//给出1个不多于5位的整数,要求:求他是几位数,逆序打印出这个数//用了很随意的方法,足够实现,先从个位依次分解各位数,然后存入数组顺序输出int main(){ int n; int c; int count=0; int a[5]; scanf("%d",&n); while (n!=0){ c=n%10; if(c!=0){ a[c原创 2022-01-14 11:27:01 · 782 阅读 · 0 评论 -
28.第5个人多少岁
#include <stdio.h>//第五个人多少岁//也是利用递归的方法//这次用的递归方法是在等式中用的//和上一题感觉有一些不同int age(int n){ int c; if(n==1) c=10; else{ //把递归嵌到等式中 c= age(n-1)+2; } return c;}int main(){ printf("%d", age((5)));}好原创 2022-01-14 10:49:59 · 93 阅读 · 0 评论 -
27.递归函数调用,将输入的5个字符,相反顺序打印
#include <stdio.h>//利用递归,将输入的5个字符,相反顺序输出//getchar 和 putchar的使用void digui(int n){ char next; //递归终止条件 //如果是最后一个字符,就获得该字符直接输出 if(n<=1){ next=getchar(); putchar(next); } else{ next=getchar(); d原创 2022-01-14 10:39:13 · 1443 阅读 · 0 评论 -
26.用递归求5的阶乘
#include <stdio.h>//利用递归方法求5!int digui(int x){ if(x==1) return 1; else return x* digui(x-1);}int main(){ printf("%d", digui((5)));}原创 2022-01-13 21:01:49 · 861 阅读 · 0 评论 -
25.求1的阶乘,2的阶乘,3的阶乘一直到20的阶乘的和
#include <stdio.h>int jiecheng(int x){ int sum=1; for(int i=1;i<=x;i++){ sum=sum*i; } return sum;}int main(){ int sum=0; int temp; for(int i=1;i<=20;i++){ temp=jiecheng(i);// printf("%d\n",temp);原创 2022-01-10 17:39:45 · 965 阅读 · 0 评论 -
24.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和
int main(){ float b=2; float a=1; float sum=0; float temp; for(int i=0;i<20;i++){ sum+=b/a; temp=b; b=a+b; a=temp;// printf("%f %f\n",b,a);// printf("%f\n",sum); } //%9..原创 2022-01-10 17:25:13 · 774 阅读 · 0 评论 -
23.输出菱形
#include <stdio.h>//输出菱形//思路:先输出上半部分,再输出下班部分//先输出空格,在输出*int main(){ int i,j,k; for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++) printf(" "); for(k=1;k<2*i;k++) printf("*"); printf("\n");原创 2022-01-10 16:18:14 · 338 阅读 · 0 评论 -
22.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 //已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序
#include <stdio.h>//int main(){ char i,j,k; //i是a的对手 //j是b的对手 //k是c的对手 for(i='x';i<='z';i++) { for(j='x';j<='z';j++) for(k='x';k<='z';k++){ //把题目条件扔进去 //并且a,b,c的对手不能够一样 if(i!='原创 2022-01-10 15:48:24 · 144 阅读 · 0 评论 -
20.100米的小球落地
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?#include <stdio.h>//一球100米下落int main(){ double m=100; double sum=0; double temp=0; int n; scanf("%d",&n); for(int i=1;i<=n;i++){ sum+=m; m=m/原创 2022-01-10 15:14:24 · 112 阅读 · 0 评论 -
19.找完数
#include <stdio.h>//找出1-n以内的所有完数//完数:找出一个数的所有因数,相加等于这个数,那么这个数就是完数int main(){ int num; int temp1; int sum; scanf("%d",&num); for(int k=1;k<=num;k++) { sum=0; for (int i = 1; i < k; i++) { if原创 2022-01-10 14:48:33 · 268 阅读 · 0 评论