c语言算法有哪些

Python013

c语言算法有哪些,第1张

这里整理c语言常用算法,主要有:

交换算法

查找最小值算法

冒泡排序

选择排序

插入排序

shell排序 (希尔排序)

归并排序

快速排序

二分查找算法

查找重复算法

1.输入语句:scanf("控制格式",接受值列表),其中控制格式常用的有:%d,%c,%s,%f,分别

表示整型,字符型,字符串和浮点型.

例如int

achar

cscanf("%d

%c",&a,&c)表示向a和c输入值

2.赋值语句:=号,如将b赋值为10,为b=10

3.条件:if(布尔表达式){程序}else{程序}(注:此结构可嵌套)

switch(离散量){case

常量:...case

常量:...}

例:int

ascanf("%d",&a)

if(a>10)

{printf("大于10")}

else

{printf("小于10")}

例:switch(months)

{

case

1:printf("1月有31天")break

case

3:printf("3月有31天")break

....

default:break

}

4.循环:for结构,while结构,do-while结构

for(初始化判断变化)

{

}

while(条件)

{

}

do

{

}while(条件)

一个数的各位数之和

#include "stdio.h"

main()

{

int n,sum=0,j

printf("please input n:\n")

scanf("%d",&n)

while(n)

{

j=n%10

n=n/10

sum+=j

}

printf("%d\n",sum)

}

冒泡法排序

#include "stdio.h"

#define MAX 10

int score[MAX]

void bubble()

{

int i,j,tmp

for(i=0i<=MAX-2i++)

{

for(j=0j<MAX-i-1j++)

if(score[j]>score[j+1])

{

tmp=score[j]//前后交换//

score[j]=score[j+1]

score[j+1]=tmp

}

}

}

void main()

{

int i

printf("please input 10 students score1!\n")

for(i=0i<MAXi++)

scanf("%d",&score[i])

bubble()

for(i=0i<MAXi++)

{

printf(" %d",score[i])

if((i+1)%5==0)

printf("\n")

}

}

阶乘

#include "stdafx.h"

#include "stdio.h"

int main()

{

long n,sum=1,i

scanf("%d",&n)

if(n==0||n==1)

sum=1

else

for(i=1i<=ni++)

{

sum*=i

}

printf("%ld\n",sum)

return 0

}

杨辉三角

#include "stdio.h"

int main()

{

int i,j,n,k,a[21][21]//数组的大小,为了节约内存空间,最好不要太大。后面的“n”不要超过这个数,这里最好用宏定义//

for(i=0i<20i++)

{

a[i][0]=1

a[i][i]=1

}

printf("please input n:\n")

scanf("%d",&n)//n不要超过上面的数组大小//

for(i=1i<=n+1i++)

{

for(k=1k<=2*(n-i+1)k++)

printf(" ")

for(j=1j<ij++)

{

a[i][j]=a[i-1][j-1]+a[i-1][j]

printf("%4d",a[i-2][j-1])

}

printf("\n")

}

return 0

}

100--999水仙花数

#include "stdio.h"

int main()

{

int num,a,b,c

for(num=100num<=999num++)

{

a=num/100

b=num/10%10

c=num%10

if(a*a*a+b*b*b+c*c*c==num)

printf("%4d\n",num)

}

return 0

}

判断素数

#include "stdio.h"

#include "math.h"

int main()

{

int n,i

printf("please input N:\n")

scanf("%d",&n)

for(i=2i<=sqrt(n+1)i++)

{

if(n%i==0)

break

}

if(i>sqrt(n+1))

printf("%d是素数!\n",n)

else

printf("n不是素数!\n")

return 0

}