C语言
学习C语言,留个记录
Lynn_0111
Lynn_0111
展开
-
递归法实现折半查找(二分查找)
题目递归法实现折半查找(二分查找)分析设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标查询数字number与mid进行比较,有四种情况:1、number=数组[mid],则找到number位置为mid2、number<数组[mid],则将数组一分为二,在小数值一端继续查找,此时low依然是low,而high变为原来的mid-13、number>数组[mid],则将数组一分为二,在大数值一端继续查找,此时high依然是high,而l原创 2021-03-13 23:02:39 · 3271 阅读 · 0 评论 -
字符串处理,输入N个学生的名字,按字母顺序输出
题目输入N个学生的名字,按字母顺序输出代码#include <stdio.h>#include <string.h>#define N 6main(){ int i,j; char name[N][20],temp[20]; //输入名字 for(i=0;i<N;i++) gets(name[i]); //排序(第i个数与后面所有字符串进行比较,选出最小的字符串置于最前端) for(i=0;i<N-1;i++) { for(j=i+1;j原创 2021-02-25 23:48:55 · 4634 阅读 · 1 评论 -
给出a,b,c,求解一元二次方程ax²+bx+c=0方程
题目给出a,b,c,求解一元二次方程ax²+bx+c=0的完整方程代码#include<stdio.h>#include<math.h>main(){ int a,b,c,flag,x1,x2; printf("输入a,b,c的值:"); scanf("%d %d %d",&a,&b,&c); flag=b*b-4*a*c;//判别公式 if(flag<0) printf("%dx^2+%dx+%c=0这个方程无解",a,b,c)原创 2021-02-25 22:02:45 · 4581 阅读 · 0 评论 -
用C语言输出所有的“水仙花数”
题目输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,152=1³+5³+3³.代码#include <stdio.h>main(){ int i,a,b,c,sum; for(i=100;i<999;i++) { a=i%10;//个位数 b=i/10%10;//十位数 c=i/100;//百位数 sum=a*a*a+b*b*b+c*c*c; if(sum==i) printf("%4d ",i); }原创 2021-02-25 21:35:13 · 2691 阅读 · 3 评论 -
判断自然数m(m>1)是不是素数
题目判断自然数m(m>1)是不是素数方法一:循环遍历(时间复杂度O(n))m除[2,m)里的数值,结果值不为整数就可知是素数#include <stdio.h>#include <time.h>int main(){ int i,m; double start,end; printf("请输入大于1的数:"); scanf("%d",&m); start=clock(); for(i=2;i<m;i++) { if(m%i==0)原创 2021-02-25 08:13:14 · 468 阅读 · 0 评论 -
求斐波那契(Fibonacci)数列:1,1,2,3,5,8,13,21...的前n个数及总和
题目求斐波那契(Fibonacci)数列:1,1,2,3,5,8,13,21…的前n个数,要求输入n,输出前n个数,并且输出前n个数之和思路观察发现从第三个数开始,每一个数都是前两个数之和代码#include<stdio.h>main(){ int a=1,b=1,c,n,sum=2;//a、b、c分别是第一项第二项和某一项 ,此时的sum是前2项之和2 printf("请输入n:"); scanf("%d",&n); printf("%d %d ",a,b)原创 2021-02-08 21:57:45 · 20202 阅读 · 2 评论 -
用无穷级数计算cos值
题目角度的余弦值可以利用以下无穷级数计算出来:cos(x)≈1-x²/2!+x⁴/4!-x⁶/6!+x⁸/8!-…输入一个角度x计算cos(x)的近似值,直到最后一项的绝对值小于10ˉ⁵思路考虑三个因素:符号、分子、分母即可C语言代码#include<stdio.h>#include<math.h>main(){ float term=1.0,x,sum=0.0,a=1.0,b=1.0;//a,b,term,sum为分子、分母、项和cos(x)值 int i=原创 2021-02-08 21:27:32 · 2556 阅读 · 0 评论 -
递归法求1!+2!+3!+4!+……+n!
题目求1!+2!+3!+4!+……+n!思路方法1:两重循环,外循环算阶乘和,内循环算阶乘(这个方法时间复杂度高,用方法2比较好)方法2:一重循环,第n个数的阶乘结果是n*第n-1个数的阶乘结果C语言代码方法1:#include <stdio.h>main(){ int i,j,sum=0,n,sum1=1; i=j=1; scanf("%d",&n); while(i<=n) { while(j<=i) { sum1=sum1*j原创 2021-02-08 20:20:35 · 10481 阅读 · 4 评论 -
判断某一年是否为闰年
问题判断某一年是否为闰年。思路满足两个条件之一即可能被4整除但不能被100整除既能能被4整除又能被400整除C语言代码#include <stdio.h>int main(){ int year,leap; scanf("%d",&year); if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1; else leap=0; } else leap=1; } el原创 2021-01-26 23:50:46 · 697 阅读 · 0 评论