您当前的位置:首页 > 养生 > 内容

10个经典的c语言基础算法及代码表(10个经典的C语言基础算法及代码)

10个经典的c语言基础算法及代码表(10个经典的C语言基础算法及代码)

算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。本文包括了经典的斐波纳契数列、简易计算器、回文检查、质数检查等算法。

1、计算斐波纳契数列

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

C语言实现的代码如下:

输入项数:10斐波纳契数列:0 1 1 2 3 5 8 13 21 34也可以使用下面的源代码:#包含int main(){int t1=0,t2=1,display=0,num printf(输入一个整数:');scanf(% d ,编号);printf(斐波那契数列:% d % d ,t1,T2);display=t1 T2;而(显示结果输出:

输入一个整数:200斐波那契数列:0 1 1 2 3 5 8 13 21 34 55 89 144

2、回文检查

源代码:

#include int main(){int n,reverse=0,rem,tempprintf(输入一个整数:');scanf(% d ,n);temp=n;while(temp!=0){ rem=temp;反向=反向*10雷姆;temp/=10;} if(reverse==n)printf(%d是回文n);elseprintf(% d 不是回文n);返回0;}

结果输出:

输入一个整数:1232112321是回文。

3、质数检查

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

源代码:

/* C程序检查一个数是否是质数. include int main(){int n,I,flag=0;printf(输入正整数:');scanf(% d ,n);for(I=2;I=n/2;I){ if(n % I==0){ flag=1;打破;} } if(flag==0)printf(%d是一个质数n);elseprintf(% d 不是质数n);返回0;}

结果输出:

输入一个正整数:2929是一个质数。

4、打印金字塔和三角形

使用* 建立三角形

源代码:

#include int main(){int i,j,rows printf(输入行数:');scanf(% d ,行);for(I=1;我=行数;I){ for(j=1;j=I;j){ printf(* ');} printf(\ n );}返回0;}

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

11 21 2 31 2 3 41 2 3 4 5

源代码:

#include int main(){int i,j,rows printf(输入行数:');scanf(% d ,行);for(I=1;我=行数;I){ for(j=1;j=I;j){ printf(* ');} printf(\ n );}返回0;}

用* 打印半金字塔

源代码:

#include int main(){int i,j,rows printf(输入行数:');scanf(% d ,行);for(I=行;I=1;-I){ for(j=1;j=I;j){ printf(* ');} printf(\ n );}返回0;}

用* 打印金字塔

源代码:

#include int main(){int i,space,rows,k=0;printf(输入行数:');scanf(% d ,行);for(I=1;我=行数;I){ for(space=1;space=rows-I;space){ printf();}while(k!=2 * I-1){ printf(*);k;} k=0;printf(\ n );}返回0;}

用* 打印倒金字塔

源代码:

#includeint main(){int rows,I,j,space printf(输入行数:');scanf(% d ,行);for(I=行;I=1;-I){ for(space=0;空间5、简单的加减乘除计算器

源代码:

/*源代码创建一个简单的计算器,使用开关进行加减乘除运算.C程序设计中的情况语句. include int main(){ char o;float num1,num 2 printf(输入运算符or-or * or divide:);scanf(% c ,o);printf(输入两个操作数:');scanf(% f % f ,num1,num 2);开关(o){ case 'printf(%)。1f %。1f=%。1f num1,num2,num 1,num 2);打破;案例-'printf(% . 1f-% . 1f=% . 1f num1,num2,num 1-num 2);打破;案例*'printf(% .1f * % .1f=% .1f ,num1,num2,num 1 * num 2);打破;案例/'printf(% . 1f/% . 1f=% . 1f num1,num2,num 1/num 2);打破;默认值:/*如果运算符不是-、*或/,将显示错误消息*/printf(错误!运算符不正确');打破;}返回0;}

结果输出:

输入运算符或-或*或除:-输入两个操作数:3.48.43.4-8.4=-5.0

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

源代码:

# include int prime(int n);int main(){int n,I,flag=0;printf(输入正整数:');scanf(% d ,n);for(I=2;I=n/2;i) {if (prime(i)!=0) {if ( prime(n-i)!=0){ printf(% d=% d % d \ n ,n,I,n-I);flag=1;} } } if(flag==0)printf(% d 不能表示为两个素数之和。'n);返回0;}int prime(int n) {int i,flag=1;for(I=2;I=n/2;I)if(n % I==0)flag=0;返回标志;}

结果输出:

输入一个正整数:3434=3 3134=5 2934=11 2334=17 17

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

源代码:

#包含void反转();int main(){ printf(输入一个句子:');反向();返回0;} void Reverse(){ char c;scanf(% c ,c);如果(c!='\ n ){反向();printf(% c ,c);}}

结果输出:

输入一个句子:margorp emosewaawesome程序

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

# include # include int binary _ decimal(int n);int decimal _ binary(int n);int main(){ int n;char c;printf(指令:\ n );printf(1。输入字母" d "将二进制转换为十进制. \ n ');printf(2。输入字母" b "将十进制转换为二进制. \ n ');scanf(% c ,c);if(c==d | | c==D ){ printf(输入一个二进制数:');scanf(% d ,n);printf(%d为二进制=%d为十进制n,binary _ decimal(n));} if(c==b | | c==B){ printf(输入一个小数:');scanf(% d ,n);printf(十进制的=% d二进制的n,decimal _ binary(n));}返回0;}int decimal_binary(int n) { int rem,i=1,binary=0;而(n!=0){ rem=n % 2;n/=2;binary=rem * I;i *=10}返回二进制;}int binary_decimal(int n) {int decimal=0,i=0,rem而(n!=0){ rem=n;n/=10;decimal=rem*pow(2,I);我;}返回小数;}

结果输出:

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

源代码:

#include int main(){int r,c,a[100][100],b[100][100],sum[100][100],I,j;printf(输入行数(1到100之间):');scanf(% d ,r);printf(输入列数(1到100之间):');scanf(% d ,c);printf(\ n输入第一个矩阵的元素:\ n );for(I=0;我结果输出:

10、矩阵转置

源代码:

#include int main(){int a[10][10],trans[10][10],r,c,I,j;printf(输入矩阵的行和列:');scanf(% d % d ,r,c);printf(\ n输入矩阵的元素:\ n );for(I=0;我结果输出:

标签:Iprintfn


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: usb芯片的选型与分类有哪些(USB芯片的选型与分类)

下一篇: 神舟九号与天宫一号成功对接(几点几时几分几秒天宫一号与神九在什么时候对接成功)



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号