「C语言」常用算法( 二 )


{
int d;
d=divisor(a,b);
return a*b/d;
}
void main()
{
int a,b,c;
printf("输入第一个数a:");
scanf("%d",&a);
printf("输入第二个数b:");
scanf("%d",&b);
c=multiple(a,b);
printf("a和b的最小公倍数c为:%d",c);
}
8.求两、三个数中较大者的函数
#include <stdio.h>
#include <conio.h>
int max(int,int,int);
void main()
{
int a,b,c,t;
printf("依次输入三个数,请输入第一个数:");
scanf("%d",&a);
printf("请输入第二个数:");
scanf("%d",&b);
printf("请输入第三个数:");
scanf("%d",&c);
t=max(a,b,c);
printf("最大的数为 :%d",t);
}
int max(int a,int b,int c)
{
int t;
if (a>b)
if (a>c)
t=a;
else
t=c;
else
if (b>c)
t=b;
else
t=c;
return t;
}
9.电文加密问题
[释义]已知电文加密规律为:将字母变成其后面的第4个字母,其它字符保持不变 。例如a→e,A→E,W→A 。
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
char ch;
while ((ch=getchar())!='n')
{
if ((ch>='a' && ch<='z') || (ch>='A' && ch<='Z'))
{
ch += 4; /*ch是字母,进行加密处理*/
if ((ch>'Z' && ch<'a') || (ch>'z'))
/*ch在加密后越界*/
ch -= 26;
}
printf("%c",ch);
}
}
10.冒泡排序法
【释义】:排序过程:
(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上;
(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置;
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束 。
#include <stdio.h>
main()
{ int a[11],i,j,t;
printf("Input 10 numbers:
");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf(" ");
for( j = 1 ; j <= 9 ; j++ )
for( i = 1 ; i <= 10 - j ; i++ )
if( a[i] > a[i + 1] )
{t = a[i]; a[i] = a[i + 1]; a[ i + 1] = t;}
printf("The sorted numbers:
");
for(i=1;i<11;i++)
printf("%d ",a[i]);
}
11.字符数组:(逆序排列)如:< ABCDE - EDCBA >.
【释义】把输入的字符串逆序排列,如输入ABCDE,输出为EDCBA.
#include<string.h>
int main()
{
char c,str[80];
int i,j;
printf("hu:");
scanf("%s",str); /* 也可以gets(str);puts(str); */
for( i = 0 , j = strlen(str)-1 ; i < j ; i++ , j-- )
{
c = str[i];
str[i] = str[j];
str[j] = c;
}
printf("Reversed string:%s",str);
return 0;
}
12.递归调用(求n的阶乘)
#include <stdio.h>
float fac(int n)
{
float f;
if(n<0)
{
printf("n<0,data error!");
}else if (n==0 || n==1)
{
f=1;
}else
f=fac(n-1)*n;
return(f);
}
int main()
{
int n,i;
float y=0;
printf("Input a integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d! =%f",n,y);
return 0;
}
13.求1到n的阶乘的和.
#include <stdio.h>
float fac(int n)
{
float f;
if(n<0){
printf("n<0,输入有误!!");
}
else if(n==0||n==1){
f=1;
}
else{
f=fac(n-1)*n;
}
return(f);
}
int main()
{
int n, i;
float y=0;
printf("请输入一个数字:");
scanf("%d",&n);
for( i = 0;i <= n; i++ ){
y = y + fac(i);
}
printf("%d! =%f",n,y);
return 0;
}
需要更多学习笔记干货的小伙伴、欢迎关注公众号【老九学堂】




推荐阅读