求C语言常用经典算法

求C语言常用经典算法,第1张

一个数的各位数之和

#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

}

#include <stdio.h>

//产生任意均值与方差正态分布随机数

// double u μ 正态分布的均值

// double g σ2=g2 正态分布的方差

// double * r指向随机数种子

// double grn1() 返回一个均值u 方差g2 正态分布 的随机数

double grn1(double u,double g,double * r)

{ int i,m

double s,w,v,t

s=65536.0w=2053.0v=13849.0

t=0.0

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

{ *r=(*r)*w+vm=(int)(*r/s)

*r=*r-m*st=t+(*r)/s

}

t=u+g*(t-6.0)

return(t)

}

int main()

{

double u,g,r

r=5.0u=1.0g=1.5

printf("\n")

for(int i=0i<=9i++){

for(int j=0j<=4j++){

printf("%10.7lf", grn1(u,g,&r))

}

printf("\n")

}

printf("\n")

}

运行结果:

1.2386322-1.1779938 0.5128021 1.9047699 1.5916595

1.1672211-0.7747955 1.8593597 1.6634369 1.7311859

0.6563568-1.4673004-0.0460358-0.9860992 0.3062592

3.9247894-0.5367584 3.5153656-0.3250885 0.0356293

0.1912689 0.2355804 0.2623138 0.3652191 3.6380463

1.1745453 2.0684662 0.4135590 2.3035736 4.8322601

-0.9066315 0.1806488 2.1878510 2.2087250 1.8370209

-0.3335114 3.2908783 0.8039398 1.2994232-1.1289215

4.1126556 0.6179047 0.4805756 0.7944183-1.3468170

1.6506195 2.3804779 2.4365082 1.9124603 0.9020844

参考 常用算法程序集(c语言描述)第三版

第三章 随机数的产生

3.5 产生任意均值与方差的正态分布的一个随机数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7738023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存