C语言前三个模块的总结,C语言程序模块总结.doc

将十进制的数转化为其他进制的数:

#include

#define ary 20

int main(void)

{

int k=0,base, x[ary],t,num,j;

scanf("%d%d",&base,&num);

t=num;

if(base<10){

do{

x[k++]=t%base;t=t/base;}

while(t!=0);}

else

do{

if(t%base<10){

x[k++]=t%base;t=t/base;}

else{

x[k++]='A'+t%base-10;t=t/base;}}

while(t!=0);

for(j=k-1;j>=0;j--){

if(x[j]>=65)

printf("%c",x[j]);

else

printf("%d",x[j]);}

}

冒泡法排序,第一次将最大的数沉到底部,第二趟将次大的数沉到倒数第二个;即每一次都从头开始向下比:

#include

#define ary 10

int main(void)

{

int i,j,t,x[ary]={9,8,7,4,5,6,3,1,2,16},k;

for(i=0;i

for(j=0;j

if(x[j]>x[j+1]){

t=x[j];x[j]=x[j+1];x[j+1]=t;}

for(k=0;k

printf("%5d",x[k]);

}

交换法排序,第一次将第一个元素一次与后面比较,将较小的放到第一个;第二次将第二个元素与下面的比较,是第二个为第二小。所以一次与下一个元素比较:

#include

#define ary 10

int main(void)

{

int i,j,k,t,x[ary]={16,9,8,6,34,2,1,4,5,7};

for(i=0;i

for(j=i+1;j

if(x[i]>x[j]){

t=x[i];x[i]=x[j];x[j]=t;}

for(k=0;k

printf("%5d",x[k]);

}

选择法排序,即从第一个元素开始寻找最小元素的下标,小虎哥比较过程中改变最小下表的记录值,第二次再从第二个开始找:

#include

#define ary 10

int main(void)

{

int i,j,point,t,k,x[ary]={19,12,13,5,6,8,7,34,23,21};

for(i=0;i

point=i;

for(j=i+1;j

if(x[point]>x[j])

point=j;

if(point!=i){

t=x[i];x[i]=x[point];x[point]=t;}

}

for(k=0;k

printf("%5d",x[k]);

}

插入法排序,先将前两个排序,就是讲第二个元素插到第一个元素的适当位置,如果比他小,那么原来的元素要后退,比他大,后面一个元素即是所插入的元素:

#include

#define ary 10

int main(void)

{

int i,j,t,k,x[ary]={1,4,56,76,41,23,21,13,15,18};

for(i=1;i

t=x[i];

for(j=i-1;t=0;j--)

x[j+1]=x[j];

x[j+1]=t;

}

for(k=0;k

printf("%5d",x[k]);

}

线性查找法,依次查找,并用一个初值判断能否找到:

#include

#define ary 10

int main(void)

{

int num,i,x[ary]={1,2,3,34,35,5,6,57,67,68},point=-1;

scanf("%d",&num);

for(i=0;i

if(x[i]==num){

point=i;

break;}

if(point!=-1)

printf("found! %d",point);

else

printf("no found");

}

折半查找法,已经排好序的:

#include

#def

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值