C语言
AlanBlog
我只是将自己在学习中学到的知识发布到这里,也欢迎大家和我一起讨论:欢迎大家访问我的个人网站:http://www.yykjc.cn 方便大家一起讨论
展开
-
【C语言】求一千以内的素数 第一种方法
第一种方法:平常思维(人们第一印象会想到的)//什么是素数? -- 除了1和本身之外不能被其他数整除的数#include "stdio.h"int main(){ int n,j,f;//变量解释:n为我们要判断的数,j为要与n相除的数,f为标志 0 表示不是素数,1 表示是素数 for(n = 2;n <= 1000;n++){//首先要将 2-1000中所有的...原创 2018-10-18 19:47:55 · 26985 阅读 · 4 评论 -
【C语言】交换两个数的位置(指针)
兼容手机端(贴图):代码(内附注释)://指针--输入两个数,并交换两个数的位置#include "stdio.h"int main() { //定义 int a,b,t,*p1,*p2; printf("Enter two integer Number:"); scanf("%d,%d",&a,&b); printf("...原创 2018-11-20 14:51:41 · 13899 阅读 · 0 评论 -
【C语言】求一个数的阶乘(递归法)
【C语言】求一个数的阶乘(递归)【代码内有注释】所有的循环算法都可以用递归实现,反之不成立,这足以证明递归的重要性!因为定义的int型数据,阶乘不要超过12 否则会溢出。手机用户:标题 代码: 1 #include "stdio.h" 2 3 int Factorial(int n) { 4 5 if(n == 1) {//使递归结束的条件 ...原创 2018-11-19 08:49:41 · 7746 阅读 · 0 评论 -
【C语言】判断1999-2599年中的每一年是否是闰年并将结果输出
是闰年的算法:(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) 算法依据:1) 能被4整除,但是不能被100整除的年份都是闰年。2) 能被400整除的年份是闰年。手机看(由于手机分辨率问题,贴图片):代码(内含注释): 1 #include "stdio.h" 2 3 int y...原创 2018-11-19 10:22:16 · 2792 阅读 · 0 评论 -
【C语言】求最小公倍数和最大公约数(辗转相除法)
用到的名词:最小公倍数,最大公约数,辗转相除法一、名词解释:1).最小公倍数:最小公倍数(Least Common Multiple,LCM),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。 最小公倍数=两数的乘积/最大公约(因)数,解题时要避免和最大公约(因)...原创 2018-11-19 15:02:00 · 113082 阅读 · 7 评论 -
【C语言】指针与二维数组的结合(定义、赋值、输出)
手机贴图:代码: 1 #include "stdio.h" 2 3 int main() { 4 5 int (*p)[4],i,j; 6 int a[5][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{17,18,19, 20}}; 7 p = a; 8 ...原创 2018-11-28 21:28:55 · 2617 阅读 · 0 评论 -
【C语言】假设一个班30名学生。要求设计一个程序:输入每位学生的学号、姓名、和三门成绩,最后输出三门成绩的总分和平均分
【C语言】假设一个班30名学生。要求设计一个程序:输入每位学生的学号、姓名、和三门成绩,最后输出三门成绩的总分和平均分设计代码://程序功能: 假设一个班有30名学生 试写一个程序 存放这30名学生的学号、姓名、三门课程的成绩 最后根据30名同学的成绩求出每门课的平均分;#include "stdio.h"#define N 3 //设置常量控制学生数//建立结构体str...原创 2018-12-02 21:52:48 · 38966 阅读 · 0 评论 -
【C语言】指针作为函数返回值
代码: 1 #include "stdio.h" 2 3 void Pointe(int *p) {//不必管 4 5 printf("Pointe:%d\n",*p); 6 7 } 8 9 int *ReturnPointe(int a,int b) {//这个函数返回一个指针 函数功能就是将a,b最大值的地址返回。 10 ...原创 2018-11-27 21:20:36 · 5301 阅读 · 0 评论 -
【C语言】指向函数的指针---函数指针(Function Pointer)
手机用户:代码: 1 #include "stdio.h" 2 3 int max(int a,int b) {//定义一个普通的函数,其功能是判断两个数,将最大的数返回 4 5 if(a > b) { 6 7 return a; 8 9 }else{ 10 11 return...原创 2018-11-27 21:33:03 · 3202 阅读 · 1 评论 -
【C语言】printf的返回值
printf的返回值实质上是输出的字符个数。原创 2018-12-07 18:25:09 · 4222 阅读 · 2 评论 -
【C语言】求 Fibonacci数列第N项的值(递归法)
“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯...原创 2018-11-15 21:57:28 · 10086 阅读 · 0 评论 -
【C语言】求1-N的和(递归法)
递归公式:条件:f(1) = 1 递归条件:f(n-1) + n为了手机显示方便(配图):代码为://求1-N的和#include "stdio.h"int f(int n) { //定义函数f 出口为n等于1,否则将n与f(n-1)相加 if(n == 1) {//出口 return(1); }else{//递归公式 ...原创 2018-11-15 21:45:20 · 11070 阅读 · 0 评论 -
【C语言】Hanoi(汉诺)塔问题,求移动盘子的步骤(递归法)
所有的循环算法都可以用递归实现,反之不成立,这足以证明递归的重要性!Hanoi(汉诺)塔问题。古代有一个焚塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在上,小的在下,有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移到一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上,在移动过程中可以利用B座。输出移动盘子的步骤。解:由于64个盘子移动...原创 2018-11-15 17:15:23 · 4510 阅读 · 1 评论 -
【C语言】求Fibonacci数列的前20项(数组)
//求Fibonacci数列的前20项#include "stdio.h"int main(){ int i,j; int f[20] = {1,1};//赋值数列前两项 for(i = 2;i < 20; i++){ f[i] = f[i-1] + f[i-2]; //根据数列的定义,进行计算(N项的结果等于 (n-1)+(n-2))...原创 2018-10-19 08:42:47 · 61528 阅读 · 6 评论 -
【C语言】求N的阶乘
求N的阶乘//输入一个数 n ,求n!#include "stdio.h"int main(){ int n,i; double l = 1; //提高精度 printf("Enter N:"); scanf("%d",&n); for(i = n; i >= 1;i--) l *= i; //计算N! printf("%d!=%lf",n,l);//...原创 2018-10-19 08:50:32 · 20082 阅读 · 3 评论 -
【C语言】冒泡法排序
1.冒泡算法:思路如图所示(图片来自bilibili UP:正月点灯笼)解释:冒泡算法的思路通俗一点就是每次将自己想要的数(最大值和最小值)放到数组的最后一位,然后每次循环n-1项就可以达到排序的目的了。代码如下: #include "stdio.h"void Bubble(int arr[],int n); //声明冒泡算法函数void sort(int srr[],...原创 2018-10-25 18:14:30 · 366 阅读 · 0 评论 -
【C语言】杨辉三角(数组)
什么是杨辉三角(图片来自互联网):杨辉三角数组做法就是将杨辉三角的结构虚拟成一个二维数组,通过二维数组对杨辉三角的规律得出一个算法来算法即为:a[i][j] = a[i-1][j-1]+a[i-1][j];一定要注意 arr(0,0) 一定为1 这是整个杨辉三角的计算核心。不要忘记给(0,0)赋值!!代码如下:#define N 15//定义杨辉三角的行列数 #inc...原创 2018-10-28 20:42:19 · 13744 阅读 · 9 评论 -
【C语言】利用选择法进行从小到大排序
选择法思路:取其中的最大值与最后一个数进行交换假设一共有6个数组,我们用选择法进行从小到大的排序;6,5,4,2,3,1第一次: 【6,5,4,2,3,1】->> 【1,5,4,2,3,6】第二次:【1,5,4,2,3】,6 ->>【1,3,4,2,5,6】第三次:【1,3,4,2】,5,6 ->> 【1,3,2,4,5,6】第四次:...原创 2018-10-29 08:51:24 · 14469 阅读 · 4 评论 -
【C语言】二维数组解魔方阵
解题思路:魔方阵的排列规律如下(思路来自互联网):注意:刚开始我也没看懂,但是相信我多看几遍理解已经能看懂的。如3×3的魔方阵: 8 1 6 3 5 7 4 9 2 (1)将1放在第一行中间一列;(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上...原创 2018-10-29 17:43:13 · 2949 阅读 · 0 评论 -
【C语言】求Fibonacci数列前40项(循环)
代码为: //求Fibonacci数列前40项#include "stdio.h"int main(){ long int f1,f2,i; f1 = 1; f2 = 1; //赋初始值 for(i = 1;i<=20;i++){//循环20次,一次两个,结果为前40项 printf("%12d%12d",f1,f2);//输出 两项 f1=f1+f2;f...原创 2018-10-24 15:59:22 · 19993 阅读 · 2 评论 -
【C语言】制作九九乘法表
代码:#include "stdio.h"int main(){ int x,y;//申请行和列变量 for(x = 1;x <= 9; x++){//循环行 for(y = 1; y <= x; y++){ // 循环列 列数等于当前行数 printf("%d*%d=%d\t",y,x,y*x);//输出 注意输出格式 } print...原创 2018-10-24 16:07:59 · 1043 阅读 · 1 评论 -
【C语言】利用循环输出菱形
输出菱形的思想主要是用了等差数列 an = a1+ (n - 1) * d 来求每个循环的约束条件;一个完整的菱形必须是由空格 、星形 来组成,切分为两部分。题目效果如下://要求输出如下图形 * ******** *** *代码如下:#include "stdio.h"int main(){ int i,j; //开始第一部分 f...原创 2018-10-24 16:32:58 · 29430 阅读 · 1 评论 -
【C语言】 利用筛选法求100以内的素数
算法思路:原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。代码如下://C语言 筛选法求100以内的素数//原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质//数的倍数筛掉。//我们将从2开始 用2除后面的数,...原创 2018-10-27 09:41:29 · 57488 阅读 · 8 评论 -
【C语言】用公式求π的近似值,要求最后一项的绝对值不小于10的-6次方
手机用户:代码:#include <stdio.h>#include <math.h>int main() { float s = 1,pi = 0,i = 1.0,n=1.0;//s 是项数,pi是π,i是当前项的值,n是分母 while(fabs(i) >= 1e-6){//最后一项的绝对值不小于1e-6 ...原创 2019-01-15 14:44:32 · 24363 阅读 · 1 评论