10大C语言基础算法珍藏版源码

您所在的位置:网站首页 c语言简单程序代码 10大C语言基础算法珍藏版源码

10大C语言基础算法珍藏版源码

#10大C语言基础算法珍藏版源码| 来源: 网络整理| 查看: 265

算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。本文是近百个C语言算法系列的第二篇,包括了经典的Fibonacci数列、简易计算器、回文检查、质数检查等算法。也许他们能在你的毕业设计或者面试中派上用场。

1、计算Fibonacci数列

Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21。

C语言实现的代码如下:

/* Displaying Fibonacci sequence up to nth term where n is entered by user. */#include int main(){ int count, n, t1=0, t2=1, display=0; printf("Enter number of terms: "); scanf("%d",&n); printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */ count=2; /* count=2 because first two terms are already displayed. */ while (count

结果输出:

Enter number of terms: 10Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+

也可以使用下面的源代码:

/* Displaying Fibonacci series up to certain number entered by user. */ #include int main(){ int t1=0, t2=1, display=0, num; printf("Enter an integer: "); scanf("%d",&num); printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */ display=t1+t2; while(display

结果输出:

Enter an integer: 200Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+55+89+144+

2、回文检查

源代码:

/* C program to check whether a number is palindrome or not */ #include int main(){ int n, reverse=0, rem,temp; printf("Enter an integer: "); scanf("%d", &n); temp=n; while(temp!=0) { rem=temp%10; reverse=reverse*10+rem; temp/=10; } /* Checking if number entered by user and it's reverse number is equal. */ if(reverse==n) printf("%d is a palindrome.",n); else printf("%d is not a palindrome.",n); return 0;}

结果输出:

Enter an integer: 1232112321 is a palindrome.

3、质数检查

注:1既不是质数也不是合数。

源代码:

/* C program to check whether a number is prime or not. */ #include int main(){ int n, i, flag=0; printf("Enter a positive integer: "); scanf("%d",&n); for(i=2;i

结果输出:

Enter a positive integer: 2929 is a prime number.

4、打印金字塔和三角形

使用 * 建立三角形

** ** * ** * * ** * * * *

源代码:

#include int main(){ int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows);//微信搜索公众号【C语言中文社区】关注回复C语言,免费领取200G学习资料 for(i=1;i

如下图所示使用数字打印半金字塔。

11 21 2 31 2 3 41 2 3 4 5

源代码:

#include int main(){ int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=1;i

用 * 打印半金字塔

* * * * ** * * ** * * * **

源代码:

#include int main(){ int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=rows;i>=1;--i) { for(j=1;j

用 * 打印金字塔

* * * * * * * * * * * * * * * ** * * * * * * * *

源代码:

#include int main(){ int i,space,rows,k=0; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=1;i

用 * 打印倒金字塔

* * * * * * * * * * * * * * * * * * * * * * * * *

源代码:

#includeint main(){ int rows,i,j,space; printf("Enter number of rows: "); scanf("%d",&rows); for(i=rows;i>=1;--i) { for(space=0;space

5、简单的加减乘除计算器

源代码:

/* Source code to create a simple calculator for addition, subtraction, multiplication and division using switch...case statement in C programming. */ # include int main(){ char o; float num1,num2; printf("Enter operator either + or - or * or divide : "); scanf("%c",&o); printf("Enter two operands: "); scanf("%f%f",&num1,&num2); switch(o) { case '+': printf("%.1f + %.1f = %.1f",num1, num2, num1+num2); break; case '-': printf("%.1f - %.1f = %.1f",num1, num2, num1-num2); break; case '*': printf("%.1f * %.1f = %.1f",num1, num2, num1*num2); break; case '/': printf("%.1f / %.1f = %.1f",num1, num2, num1/num2); break; default: /* If operator is other than +, -, * or /, error message is shown */ printf("Error! operator is not correct"); break; } return 0;}

结果输出:

Enter operator either + or - or * or divide : -Enter two operands: 3.48.43.4 - 8.4 = -5.0

6、检查一个数能不能表示成两个质数之和

源代码:

#include int prime(int n);int main(){ int n, i, flag=0;//微信搜索公众号【C语言中文社区】关注回复C语言,免费领取200G学习资料 printf("Enter a positive integer: "); scanf("%d",&n); for(i=2; i

结果输出:

Enter a positive integer: 3434 = 3 + 3134 = 5 + 2934 = 11 + 2334 = 17 + 17

7、用递归的方式颠倒字符串

源代码:

/* Example to reverse a sentence entered by user without using strings. */ #include void Reverse();int main(){ printf("Enter a sentence: "); Reverse(); return 0;}void Reverse(){ char c; scanf("%c",&c); if( c != ' ') { Reverse(); printf("%c",c); }}

结果输出:

Enter a sentence: margorp emosewaawesome program

8、实现二进制与十进制之间的相互转换

/* C programming source code to convert either binary to decimal or decimal to binary according to data entered by user. */ #include #include int binary_decimal(int n);int decimal_binary(int n);int main(){ int n; char c; printf("Instructions: "); printf("1. Enter alphabet 'd' to convert binary to decimal. "); printf("2. Enter alphabet 'b' to convert decimal to binary. "); scanf("%c",&c); if (c =='d' || c == 'D') { printf("Enter a binary number: "); scanf("%d", &n); printf("%d in binary = %d in decimal", n, binary_decimal(n)); } if (c =='b' || c == 'B') { printf("Enter a decimal number: "); scanf("%d", &n); printf("%d in decimal = %d in binary", n, decimal_binary(n)); } return 0;} int decimal_binary(int n) /* Function to convert decimal to binary.*/{ int rem, i=1, binary=0; while (n!=0) { rem=n%2; n/=2; binary+=rem*i; i*=10; } return binary;} int binary_decimal(int n) /* Function to convert binary to decimal.*/{ int decimal=0, i=0, rem; while (n!=0) { rem = n%10; n/=10; decimal += rem*pow(2,i); ++i; } return decimal;}

结果输出:

9、使用多维数组实现两个矩阵的相加

源代码:

#include int main(){ int r,c,a[100][100],b[100][100],sum[100][100],i,j; printf("Enter number of rows (between 1 and 100): "); scanf("%d",&r); printf("Enter number of columns (between 1 and 100): "); scanf("%d",&c); printf(" Enter elements of 1st matrix: "); /* Storing elements of first matrix entered by user. */ for(i=0;i

结果输出:

10、矩阵转置

源代码:

#include int main(){ int a[10][10], trans[10][10], r, c, i, j; printf("Enter rows and column of matrix: "); scanf("%d %d", &r, &c); /* Storing element of matrix entered by user in array a[][]. */ printf(" Enter elements of matrix: "); for(i=0; i

责任编辑:lq

原文标题:经常遇到的10大C语言基础算法(珍藏版源码)

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

扫一扫,分享给好友

复制链接分享 评论

发布评论请先 登录

相关推荐

与OpenHarmony相关的三场技术直播 因为突发的疫情,我们的生活按下了“慢行键”,大家现在的工作状态如何呢?anyway,希望大家都保持积.... 的头像 发烧友研习社 发表于 03-20 13:44 • 175次 阅读 一种基于生成对抗网络的无人机图像去雾算法 摘要: 无人机所采集的图像容易受到雾霾、雾气等阴霾天气干扰,造成图像质量下降。针对阴霾天气下无人机采.... 发表于 03-20 12:24 • 2次 阅读 占位面积很小的自定义进度指示器progressbutton 概述 1、描述:progressbutton是占位面积很小的自定义进度指示器。默认实现提供了一个pi.... 发表于 03-18 14:45 • 4次 阅读 详解Minitab API系统集成案例 Minitab 是质量改进和统计学教育方面领先的软件和服务提供商。在《财富》 100 强公司中,超过.... 发表于 03-18 13:23 • 4次 阅读 详解Minitab API系统集成案例 深度剖析时间复杂度 相信每一位录友都接触过时间复杂度,但又对时间复杂度的认识处于一种朦胧的状态,所以是时候对时间复杂度来.... 的头像 算法与数据结构 发表于 03-18 10:18 • 82次 阅读 如何将前中后序的递归框架改写成迭代形式 之前经常讲涉及递归的算法题,我说过写递归算法的一个技巧就是不要试图跳进递归细节,而是从递归框架上思考.... 的头像 算法与数据结构 发表于 03-18 10:13 • 73次 阅读 第九章 AVR C语言的应用.PDF 本教程讲解的是AVR C语言编程,包括开发环境、语言语法、特殊用法基础知识的讲解 发表于 03-17 14:21 • 12次 阅读 介绍assert的使用方法 很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。一般来说,系统可以使.... 的头像 Linux爱好者 发表于 03-17 14:06 • 183次 阅读 如何使用 Compose 进行构建 适用于 Wear OS 的 Compose 已推出了开发者预览版,使用 Compose 构建 Wea.... 的头像 谷歌开发者 发表于 03-17 13:44 • 198次 阅读 CFI的基本概念 控制流劫持是一种危害性极大的攻击方式,攻击者能够通过它来获取目标机器的控制权,甚至进行提权操作,对目.... 的头像 Linux阅码场 发表于 03-17 13:36 • 137次 阅读 OpenHarmony应用开发为什么不首选C/C++作为应用开发语言呢 OpenHarmony本来就是C和C++开发的,支持C/C++语言环境。应用开发为什么不首选C/C++作为应用开发语言。 1、相对于其他开... 发表于 03-17 10:30 • 875次 阅读 在CPU上如何同时尝试 getrandom Jason Donenfeld 是 WireGuard 的主要开发者,同时他也是 Linux 内核随.... 的头像 Linux爱好者 发表于 03-16 17:19 • 557次 阅读 基础算法:差分数组详解 前文说前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。 的头像 算法与数据结构 发表于 03-16 15:57 • 444次 阅读 一文详细了解Prim最小生成树算法 像图论算法这种高级算法虽然不算难,但是阅读量普遍比较低,我本来是不想写 Prim 算法的,但考虑到算.... 的头像 算法与数据结构 发表于 03-16 15:27 • 409次 阅读 如何用 Markdown 来做 PPT 相信绝大多数朋友做 PPT(幻灯片 / Slides / Deck 等各种称呼了)都是用的 Powe.... 的头像 数据分析与开发 发表于 03-16 14:10 • 121次 阅读 关于指数对比度增强FPGA实现 对比度增强是个广泛的话题,前文中关于直方图均衡的方法,其实就是一种对比度增强。而对比度增强,就是提高.... 的头像 FPGA技术江湖 发表于 03-16 11:46 • 154次 阅读 为什么说C语言程序运行时要比其他语言编写的程序快得多 C语言程序运行时要比其他语言编写的程序快得多,因为它“离底层机器很近”,这个说法正确吗? 的头像 C语言编程学习基地 发表于 03-16 08:45 • 130次 阅读 C语言如何使用正则表达式 C语言的正则表达式规则,特此跟大家分享。 的头像 C语言编程学习基地 发表于 03-16 08:41 • 165次 阅读 VScode编译器如何配置C/C++编译环境 昨天有伙伴私信我,为什么我用C语言写的hello world几行代码,在编译器里面报错了呢? 的头像 C语言编程学习基地 发表于 03-16 08:38 • 119次 阅读 解析数据结构的常用七大排序算法 为了让大家掌握多种排序方法的基本思想,本篇文章带着大家对数据结构的常用七大算法进行分析:包括直接插入.... 的头像 C语言编程学习基地 发表于 03-16 08:22 • 138次 阅读 从C 到 matlab 到 FPGA,如何实现CNN的项目 经过了前面的开胃菜,项目正式开始。一步步讲解这个模型怎么玩起来的。从C 到 matlab 到 FPG.... 的头像 FPGA攻城狮之家 发表于 03-15 17:13 • 649次 阅读 润和鸿蒙系列开发板资料总结(原理图+源代码+教程) 1、润和 HH-SCDAYU200 鸿蒙开发套件 简介:基于Rockchip RK3568,集成双核心架构GPU以及高效能NPU;板载四核6... 发表于 03-15 16:40 • 10143次 阅读 润和鸿蒙系列开发板资料总结(原理图+源代码+教程) 使用Trace View对对Kernel进行性能仿真分析 对Kernel进行性能分析需要对其进行仿真,同时还要用到Vitis Analyzer。为便于说明,我.... 的头像 TeacherGaoFPGAHub 发表于 03-15 15:30 • 217次 阅读 怎样去处理OpenHarmony执行hb命令报错的问题呢 在执行hb命令的时候报错: 重新安装环境,在安装hb的时候出现下面的问题警告: 处理方式:在openharmony 代码根目录下使用... 发表于 03-15 14:33 • 589次 阅读 单片机实现24C02存储上次使用中状态的C语言实例 单片机实现24C02存储上次使用中状态的C语言实例 发表于 03-15 14:19 • 25次 阅读 assign组合逻辑和always@(*)组合逻辑的区别 1.always@后面内容是敏感变量,always@(*)里面的敏感变量为*,意思是说敏感变量由综合.... 的头像 FPGA之家 发表于 03-15 14:08 • 198次 阅读 Verilog系统函数和边沿检测 “ 本文主要分享了在Verilog设计过程中一些经验与知识点,主要包括Verilog仿真时常用的系统.... 的头像 FPGA之家 发表于 03-15 13:34 • 117次 阅读 Verilog逻辑设计中的循环语句和运算符 “ 本文主要分享了在Verilog设计过程中一些经验与知识点,主要包括循环语句(forever、re.... 的头像 FPGA之家 发表于 03-15 11:41 • 183次 阅读 什么是“三字母词” 在ANSI标准中,定义了“三字母词”,或者成为“三联符序列”,英文为"trigraph sequen.... 的头像 STM32嵌入式开发 发表于 03-15 09:27 • 101次 阅读 一种简单的OpenHarmony环境搭建方法 本文介绍一种简单的OpenHarmony环境搭建方法。 的头像 HarmonyOS官方合作社区 发表于 03-14 13:58 • 1379次 阅读 一种简单的OpenHarmony环境搭建方法 C语言使用回调函数模拟委托与反射 函数是C语言的核心概念。主调函数(caller)调用被调函数(callee)是一般的调用关系,如果被.... 的头像 STM32嵌入式开发 发表于 03-14 10:19 • 131次 阅读 第一个C语言编译器的来源 不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是“鸡生蛋,蛋生鸡”的问题吗? 的头像 嵌入式ARM 发表于 03-12 12:36 • 668次 阅读 详解C语言中的短路现象   C语言一经出现,就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语.... 的头像 嵌入式ARM 发表于 03-12 12:23 • 571次 阅读 详解C语言中的短路现象 如何快速学习并精通C语言 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文.... 的头像 嵌入式ARM 发表于 03-12 11:59 • 422次 阅读 一类新算法研究智能飞行器航迹规划问题 摘要: 智能飞行器航迹规划问题是一个大范围多目标多约束的三维规划问题,这类问题可以归属于路径规划问题.... 发表于 03-12 11:24 • 12次 阅读 一类新算法研究智能飞行器航迹规划问题 编写一个简单的C51程序 对于嵌入式系统,如果没有运行RTOS,那么程序开发中的 主函数(main())需要通过某种机制使其永.... 的头像 嵌入式ARM 发表于 03-12 11:17 • 384次 阅读 C语言操作寄存器的常见手法 使用C语言对寄存器赋值时,常常需要用到C语言的位操作方法。把寄存器某位清零 假设a代表寄存器,.... 的头像 硬件攻城狮 发表于 03-12 09:06 • 202次 阅读 ​为什么嵌入式开发要选择C语言? 简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言.... 的头像 硬件攻城狮 发表于 03-11 10:21 • 168次 阅读 代码和bug就是一个此消彼长、相互依赖的过程 经常听一些朋友说道:"你写的代码没有bug,那你离丢饭碗不远了",又或者代码中故意保留一些bug来增.... 的头像 硬件攻城狮 发表于 03-11 10:01 • 160次 阅读 C语言有哪些语法技巧和功能 C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非.... 的头像 strongerHuang 发表于 03-10 17:42 • 814次 阅读 如何实现软硬件分层 以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f1.... 的头像 strongerHuang 发表于 03-10 17:32 • 532次 阅读 Cu杂质对Si(110)湿法蚀刻的影响 我们在蚀刻的硅(110)表面上实验观察到的梯形小丘的形成,描述它们的一般几何形状并分析关键表面位置的.... 发表于 03-10 16:15 • 6次 阅读 Cu杂质对Si(110)湿法蚀刻的影响 利用野外光谱开展重金属Pb含量反演的研究 近年来,土壤重金属污染已经成为一个严重的环境问题,尤其是在城市快速扩张、工业迅速发展的国家和地区,研.... 发表于 03-10 15:02 • 10次 阅读 利用野外光谱开展重金属Pb含量反演的研究 c语言嵌入式编程 比较详尽的嵌入式C语言解答和分析 发表于 03-10 14:53 • 418次 阅读 一种基于生成对抗网络的无人机图像去雾算法 摘要: 无人机所采集的图像容易受到雾霾、雾气等阴霾天气干扰,造成图像质量下降。针对阴霾天气下无人机采.... 发表于 03-10 10:30 • 533次 阅读 使用GoRK3288库的时候需要用到的语法有哪些呢 使用GoRK3288库的时候需要用到的语法有哪些呢?... 发表于 03-10 06:49 • 489次 阅读 RV1109优势和特点是什么?有哪些应用? RV1109优势和特点是什么?有哪些应用? 发表于 03-10 06:45 • 302次 阅读 如何快速排查IO异常输出问题 在嵌入式开发过程中,IO 操作是不可避免的,很多时候 IO 操作很正常,但有些时候可能因为某些原因导.... 的头像 strongerHuang 发表于 03-09 17:55 • 775次 阅读 如何快速排查IO异常输出问题 C/C++在线编译器的功能 作为程序员,使用编译器是必备技能,但是从入门到放弃,基本上就是在开发环境安装、配置这一步。。。 的头像 strongerHuang 发表于 03-09 17:52 • 3245次 阅读 有效提高编译速度的方法 今天就来说说嵌入式软件开发中,常见的提高编译速度的一些操作或者方法。 的头像 strongerHuang 发表于 03-09 17:31 • 691次 阅读 C语言简单模拟委托与简单模拟反射 函数是C语言的核心概念。主调函数(caller)调用被调函数(callee)是一般的调用关系,如果被.... 的头像 硬件攻城狮 发表于 03-09 17:17 • 2966次 阅读 C语言中内存四区模型的本质区别和代码分析 ●数据类型可理解为创建变量的模具:是固定内存大小的别名。 的头像 嵌入式ARM 发表于 03-09 14:45 • 252次 阅读 如何调试TAS5805? 如何调试TAS5805? 发表于 03-09 06:38 • 67次 阅读 如何通过驱动的方式点亮LED灯? 如何通过驱动的方式点亮LED灯? 发表于 03-09 06:34 • 93次 阅读 HiHope开发者问题答疑2 1. hi3861 小车寻迹和避障的代码 https://gitee.com/hihope_iot/hispark-pegasus-smart-car/tree/master 2.Pegasus智能家居开发... 发表于 03-07 20:28 • 1811次 阅读 RK3399如何启动shell脚本? RK3399如何启动shell脚本? 发表于 03-04 06:04 • 127次 阅读 怎样去编写RTC实时驱动的代码呢 实时时钟是什么? 怎样去编写RTC实时驱动的代码呢? ... 发表于 03-02 09:50 • 182次 阅读


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3