今天已经是c语言经典算法(四)了!随着算法深入,后来的部分算法会有一些技巧和经验,对于初学者有一定挑战,所有有什么问题可以直接评论,我会一一回复给大家。谢谢支持!
十六、按顺序插入数字
如今一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
下面是代码部分
下面是测试结果
十七、定义宏
#define SQ(x) (x)*(x)
main()
{
int temp1,temp2,number,end,i,j;
printf("请输入一个正整数:\n");
scanf("%d",&number);
printf("%d的平方是%d\n",number,SQ(number));
}
代码测试结果如下
关于define的使用,我想说的一点是,#define语句结尾是没有分号的哦。像这种,#define SQ(x) (x)*(x) ;语句会编译报错的。而且这种错误非常难找的,血淋淋的教训啊。
十八、打印出杨辉三角形
杨辉三角是指如下规律数字,下面的数字恰好是它肩膀上的数字之和。
代码如下
main()
{
int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i )
{a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i )
for(j=1;j<i;j )
a[i][j]=a[i-1][j-1] a[i-1][j];
for(i=0;i<10;i )
{for(j=0;j<=i;j )
printf("%d\t",a[i][j]);
printf("\n");
}
}
程序运行结果如下
十九、伪随机数生成器
伪随机数在游戏中有广泛的应用。比如某些游戏的装备强化,有一种算法就是利用伪随机原理。
我给大家举个例子,随机生成10个正整数,大小都在0到100之间。
代码如下:
main()
{
int i,a[10];
srand(time(NULL));
for(i=0;i<10;i )
a[i]=rand()0;
for(i=0;i<10;i )
printf("%d ",a[i]);
printf("\n");
}
运行两次结果分别是
可以看到两次结果都是不一样的,因为随机算法几乎不可能两次结果都一样。
今天的经典算法就给大家介绍到这里,了解更多关于C语言/C 教程、各种电脑技术教程,请点击订阅按钮,或者关注微信公众号 Yifan-wangluo,谢谢亲的支持哦!
,