
李含光C语言
小_黑_
希望能精通C/C++,掌握python
展开
-
写在前面(Dev-c++的下载和使用)
报考了南信工的研究生,专业课是李含光先生的C语言程序设计,开个小专题练练李先生在书中的题。原创 2020-09-29 15:05:54 · 171 阅读 · 0 评论 -
用数组配合指针实现冒泡排序
#include<stdio.h>#define N 10void input(int []);void sort(int []);void output(int []);int main(){ int a[N]; input(a); printf("\nthe order before sort\n"); output(a); sort(a); printf("\nthe order .原创 2020-12-16 16:33:21 · 344 阅读 · 0 评论 -
将一个N*N的矩阵,顺时针旋转90度输出
#include<iostream>using namespace std;#define N 3int main(){ int i,j,a[N][N],b[N][N]; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0;i<N;i++) .原创 2020-12-11 14:22:41 · 3957 阅读 · 0 评论 -
求一元二次方程ax^2+bx+c=0的根
用3个函数分别求判别式大于0,等于0和小于0时的根,并输出结果。主函数中输入系数a,b,c。#include<iostream>#include<math.h>using namespace std;void f1(float,float,float,float);void f2(float,float,float,float);void f3(float,float,float,float);int main(){ float a,b,c,d;原创 2020-12-10 14:42:06 · 3159 阅读 · 0 评论 -
Hanoi塔问题
#include<iostream>using namespace std;void hanoi(unsigned int n,char from,char temp,char to);void moveplate(unsigned int n,char from,char to);int main(){ unsigned int n; scanf("%u",&n); hanoi(n,'A','B','C');...原创 2020-12-09 11:00:08 · 116 阅读 · 0 评论 -
用牛顿迭代法求平方根
#include<iostream>using namespace std;double sqrt_root(double,double);double abs_value(double);int main(){ double x,e; scanf("%lf %lf",&x,&e); if(x<=0||e<=0) { printf("error\n"); .原创 2020-12-09 10:10:29 · 324 阅读 · 0 评论 -
编写一个程序,计算x-1/2*x^3/4+1/2*3/4*x^5/6-1/2*3/4*5/6*x^7/8+...的近似值
#include<iostream>#include<math.h>using namespace std;int main(){ int n=2; double eps,t,s=0,x; scanf("%lf %lf",&x,&eps); t=x; s=t; while(fabs(t/2*n)>=eps) { .原创 2020-12-08 14:32:05 · 5008 阅读 · 7 评论 -
用二分法求方程2x^3-4x^2+3x-6=0在区间(-10,10)之间的根
#include<iostream>#include<math.h>using namespace std;int main(){ float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do { x=(a+b)/2; f=(((2*x-.原创 2020-12-08 13:46:37 · 6394 阅读 · 0 评论 -
输入年月日,判断是这年的第几天
#include<iostream>using namespace std;int main(){ int y,m,d,s=0; scanf("%d,%d,%d",&y,&m,&d); bool flag=0; if(y%4==0&&y%100!=0||y%400==0)flag=1; switch(m) { case 1.原创 2020-12-08 13:15:37 · 694 阅读 · 0 评论 -
谁是真正的打工人(谁是小偷)
四人有一人为打工人,每个人说话不知正否。话分别如下:乙不是,丁是;乙不是,丙是;甲不是,乙是;丁不是。如题所问。分别设甲乙丙丁为a,b,c,d。1为是打工人,0不是。甲:((!b&&d)==1||(b&&!d)==1) 乙:((!b&&c)==1||(b&&!c)==1)丙:((!a&&b)==1||(a&&!b)==1) 丁:(d==0!!d==1) 计...原创 2020-12-08 11:58:57 · 88 阅读 · 0 评论 -
求斐波那契数列前40项
#include<iostream>using namespace std;int main(){ int f1=1,f2=1; for(int i=1; i<=20; i++) { printf("%-15d %-15d",f1,f2); if(i%2==0)printf("\n"); f1=f1+f2; .原创 2020-12-07 18:45:43 · 3209 阅读 · 0 评论 -
验证哥德巴赫猜想之任一充分大的偶数,可以由两个素数之和表示
using namespace std;int isPrime(int n);int main(){ int a; scanf("%d",&a); if(a%2==1||a<4) { printf("error,too small"); return 0; } int p,q; bool p_flag=0,q_f.原创 2020-12-07 18:01:38 · 1873 阅读 · 0 评论 -
闰年的判断
#include<iostream>using namespace std;int main(){ int y; scanf("%d",&y); if(y%4==0&&y%100!=0||y%400==0) { printf("yes\n"); }else printf("no\n"); return 0;.原创 2020-12-07 15:53:46 · 95 阅读 · 0 评论 -
输入一无符号整数,求所有数位上数字之和
#include<iostream>using namespace std;int main(){ int a, sum=0; scanf("%d",&a); for(;a;a/=10) { sum += a%10; } printf("%d",sum); return 0;} 一开始用了do-while控制,感觉没for控制的简洁好用。原创 2020-12-06 16:57:16 · 2073 阅读 · 0 评论 -
学习委员的烦恼
小王作为班上的学习委员,每门课程考试后,任课老师都会让他统计成绩。老师并不关心每个人的具体成绩,只关心参加考试的人数,平均分,最低分和最高分共4个指标,请用C语言帮小王完成这个任务。#include<cstdio>int main(){ double s[1001] = {}; int ac=0; printf("输入参加考试总人数\n"); scanf("%d",&ac); printf("请输入%d次成绩,空格确认\n",ac); for(int i=...原创 2020-11-20 21:11:39 · 327 阅读 · 0 评论 -
判断三角形的形状
已知3个正数,这3个正数能否构成一个三角形的边;若能,判断三角形形状#include<cstdio>int main(){ double a[3]={}; for(int i=0; i<3; i++) { scanf("%lf",&a[i]); } for(int i=0; i<2; i++) { if(a[i+1]<a[i]) { a[i+1] = a[i] - a[i+1]; a[i] = a[i原创 2020-11-19 22:26:53 · 421 阅读 · 0 评论 -
牛顿迭代法求解2x^3+4x^2+3x+6=0在1.5附近的根的近似值
设根号内数字为b,根号上的数为a,开根号后结果为x,则x^a=b.归纳得x^a-b=0,由此列方程y=x^a-b(y趋向于0)如上图,最终结果等于这条线与x轴(y=0)时的交点,于是求A点(AB点重合)的切线,交x轴于D(X1)点,作垂线与函数线相交于点C,再做C的切线,如此反复迭代,最终会无限近似于平方根。m[斜率]=f`(E)y-f(E)=f`(x)(x1-x0),因为y=0X1=X0-(f(X0)/f`(X0))X(n+1)=Xn-f(Xn)/f`(Xn)...原创 2020-12-08 11:25:33 · 929 阅读 · 1 评论 -
求阶乘
#include<cstdio>int main(){ int a=0,sum=1; scanf("%d",&a); for(int i=a;i>1;i--) sum = sum*i; printf("%d",sum); return 0;}原创 2020-10-19 11:02:23 · 95 阅读 · 0 评论 -
反位数的求法
即12345变成54321,分开除10就好了#include<cstdio>int oppoPlace(int a){ int t=0,sum=0; for(; a; a=a/10) { t=a%10; sum = sum*10+t; } return sum;}int main(){ int a=0; scanf("%d",&a); a=oppoPlace(a); printf("反位数为 %d",a); return 0; }其中用的原创 2020-10-18 17:18:13 · 2064 阅读 · 0 评论 -
素数的判断
素数即不能被1或自身之外的数整除。把其中的数每个除一边这个素数即可判断出来。如素数13。只要将2到12每个除一边,就可判断。之后将其简化,除法之所以可以整除是因为存在约数,根据贝叶斯公式可推出,最大公约数即该数的开方。若除数大于被除数的开方,肯定不能整除。从而将除数范围缩小。#include<cstdio>bool isPrime(int a){ for(int i=2; i*i<=a; i++) if(a%i==0) return 0; return 1;原创 2020-10-18 16:45:22 · 822 阅读 · 0 评论 -
两数的最大公约数与最小公倍数
先抛出一个关于C语言除法运算的式子:a=a%b*b+a/b所以a/b=a-a%b*b。设temp为a,b的共同约数,因等式两边同加同减同乘同除等式仍成立所以,temp也为a/b和b的共同约数,因为temp不确定,a,b的公约数即是b与a/b的公约数又因为a=a/b+a%b*b,同理a,b的公约数是b与a%b的公约数,所以最大公约数也相等。所以gcb/*最大公约数简写*/(a,b)=gcd(a,a%b),即可使用递归算最大公约数int gcd(int a,int b){ ret原创 2020-10-17 22:56:55 · 155 阅读 · 0 评论 -
数据类型,运算符和表达式关键点总结
1.自定标识符由字母数字下划线组成,首字符不为数字2.一般使用大写字母表示常量,小写字母表示变量3.变量必须先定义后使用4.整型常量默认类型为int5.浮点常量默认类型为double,指数符号e或E的前面需有数字,指数为整数6.浮点型数据在内存中以指数形式存储,分为小数与指数两部分7.因为浮点数数据的有效数字位有限制,有效位以外的数字会被舍去。8.转义字符只能使用小写字母,每个转义字符只能看作一个字符。9.取余运算要求运算符两端都为整型数据,浮点数据不能进行取余运算。原创 2020-09-29 16:57:05 · 418 阅读 · 0 评论