C笔记
唐煜鑫
这个作者很懒,什么都没留下…
展开
-
建立有向图的邻接表存储 进行深度优先遍历
#include<stdio.h>#include<malloc.h>#define Vextype char#define Edgetype int#define MaxVerNum 30 /* 最大顶点个数 */typedef struct ArcNode /*边结点*/{ int adjvex; /*该边所指向的顶点的位置*/ struct ArcNode * nextarc; /*指向下一条边的指针*/}Ar原创 2020-06-25 20:23:56 · 1984 阅读 · 0 评论 -
采用孩子兄弟表示法建立一棵树
采用孩子兄弟表示法建立一棵树。说明:因为孩子兄弟表示法的特点,不好用递归创建,所以利用队列来存放结构体。注意:当指针作为函数参数时,不能改变实参指针的指向,只能改变实参指针所指向的数据#include<stdio.h>#include<malloc.h>#define DateType char#define MAXSIZE 100 //队列的最大容量//typedef struct CSNode{ DateType data; struct CSN原创 2020-05-24 11:22:10 · 7911 阅读 · 0 评论 -
凯撒密码 C语言(前移4位)
#include<stdio.h>int main(){char c;while((c=getchar())!=’/n’){if((c>=‘A’ && c<=‘Z’) || (c>=‘a’ && c<=‘z’)){c=c+4;if(c>‘Z’&&c<=‘Z’+4 || c>‘z’...原创 2020-05-03 10:09:21 · 990 阅读 · 0 评论 -
利用递归来建立动态储存 结构体
说明:利用递归来建立动态储存,要用malloc定义,不能直接用结构体定义,不难函数调用后释放。#include<stdio.h>#include<stdlib.h>struct s //建立结构体类型{ int a; struct s * next;};int main(){ struct s * fun(int n); void outpu...原创 2020-02-25 14:07:27 · 123 阅读 · 0 评论 -
函数指针 定积分
题目:写一个用矩形法求定积分的通用函数,分别求∫01sin(x)dx \int_0^1 sin(x)dx\,∫01sin(x)dx、∫−11cos(x)dx \int_{-1}^1 cos(x)dx\,∫−11cos(x)dx、∫02exdx 。\int_0^2 e^{x}dx\,。∫02exdx。#include<stdio.h>#include<math.h>...原创 2020-02-23 15:36:12 · 1367 阅读 · 0 评论 -
指针 循环 判断
题目:n个人围成一圈,顺序排号。从第一个人开始报数(从一到三),凡报到三出圈子,问最后留下来的是原来第几号。#include<stdio.h>int main(){ void move(int a[100],int n); int a[100],i,n; //不超过100人 scanf("%d",&n); //输入人数 for(i=1;i<=n;i+...原创 2020-02-21 07:46:59 · 986 阅读 · 0 评论 -
指针 数组 递归 动态分配
题目:有n个整数,是前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一个函数实现以上功能,在主函数中输入n个整数和输出调整后n个整数。(p291)#include<stdio.h>#include<stdlib.h> //动态分配头文件unsigned int n,m; //全局变量int main(){ void fun(int *p,in...原创 2020-02-20 11:58:15 · 163 阅读 · 0 评论 -
字符串输入输出比较
#include<stdio.h>int main(){ char a[3],b[3],i; gets(b);// scanf("%s",b); puts(b);printf("%s",b); for(i=0;i<6;i++) printf("%c",b[i]); return 0;}说明:两个输入函数一样,不管字符长度是否超标都会在最后加上’\...原创 2020-02-09 11:14:35 · 196 阅读 · 0 评论 -
求根
#include<stdio.h>#include<math.h>float disc,x1,x2;int main(){ void greater_than_zero(float a,float b); void equal_to_zero(float a,float b); void smaller_than_zero(float a,float b);...原创 2020-02-08 12:38:20 · 329 阅读 · 0 评论 -
字符串比较
题目:将两个字符串s1和s2比较,若s1>s2,输出一个正数,若s1=s2,输出一个0,若s1<s2,输出一个负数。不用strcpy函数,输出的数值为两个比较字符的ASCLL码的差值。#include<stdio.h>int main(){ char s1[100],s2[100]; int i=0,resu; printf("input string1:");...原创 2020-02-03 13:21:01 · 221 阅读 · 0 评论 -
字符串连接
题目:将两个字符串连接起来,不用strcat函数。#include<stdio.h>int main(){ char s1[100],s2[20]; int i=0,j=0; printf("input string1:"); scanf("%s",s1); printf("input string2:"); scanf("%s",s2); while(s1[i]!...原创 2020-02-03 10:47:34 · 123 阅读 · 0 评论 -
折半法 数组查找
题目:有15个数按由小到大顺序存放在一个数组中,输入一个数,要求用折半法查找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出“无此数”。注意:存在scanf("%d",&number);scanf(" %c",&c);第二个输入语句的条件控制要加空格,因为上一个结束标记是回车,这个时候在输入缓存里就把这个回车字符存在里面了。当你要再读入一个字符时,就会默认先把...原创 2020-02-02 18:06:03 · 1507 阅读 · 1 评论 -
排序 选择法
题目:用选择法对10个整数排序。(p165)#include<stdio.h>int main(){ int i,j,max,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<=9;i++) //对每一位元素比较 { for(j=i+1;j<=9;j++) //将元素与剩下的...原创 2020-02-01 11:26:48 · 100 阅读 · 0 评论 -
阶乘求和
题目:求∑n=120n!\displaystyle \sum_{n=1}^{20} n!n=1∑20n!说明:double型能表示15位有效数字范围能达到1010810^{108}10108#include<stdio.h>int main(){ int n,i; double s=1.0,sn=0.0; scanf("%d",&n); for(i=1...原创 2020-01-30 20:46:52 · 474 阅读 · 0 评论 -
循环求和
题目:求SnSn=a+aa+aaa+…+aaa…a.例如:2+22+222+2222+22222(此时 n=5)#include<stdio.h>int main(){ int a,n,i,s=0,sn=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { s=s+a; sn=sn+s; a=10*...原创 2020-01-30 19:27:34 · 501 阅读 · 0 评论 -
最大公约数
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。说明:最大公约数:两个数中小的数给大的数求余,且余数必小于除数,同理除数变为大的数,余数变为除数求余。最小公约数:两个数分解都有最大公约数,将两数相乘除以最大公约数得最小公约数#include<stdio.h>int main(){ int n,m,temp,p,r; scanf("%d%d",&n,&...原创 2020-01-30 17:58:28 · 267 阅读 · 0 评论 -
循环 字符串输入
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(p137)#include<stdio.h>int main(){ char c[100]; //定义储存字符串的数组 int n=0,m=0,x=0,y=0,i=0; gets(c); //字符串输入函数 for(i;c[i]!='\0';i++) { ...原创 2020-01-30 17:18:50 · 4211 阅读 · 0 评论