c程序小练习包括几种排序算法.docx

上传人:b****5 文档编号:7651363 上传时间:2023-01-25 格式:DOCX 页数:16 大小:17.88KB
下载 相关 举报
c程序小练习包括几种排序算法.docx_第1页
第1页 / 共16页
c程序小练习包括几种排序算法.docx_第2页
第2页 / 共16页
c程序小练习包括几种排序算法.docx_第3页
第3页 / 共16页
c程序小练习包括几种排序算法.docx_第4页
第4页 / 共16页
c程序小练习包括几种排序算法.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c程序小练习包括几种排序算法.docx

《c程序小练习包括几种排序算法.docx》由会员分享,可在线阅读,更多相关《c程序小练习包括几种排序算法.docx(16页珍藏版)》请在冰豆网上搜索。

c程序小练习包括几种排序算法.docx

c程序小练习包括几种排序算法

//找零钱问题,张数最少

#include

voidback(doublenum)

{

inti=0;//i为存放的钱的张数

doublea[8]={100,50,20,10,5,1,0.5,0.1};

doubleb[100];//存放找的钱

for(intf=0;f<8;f++)

{

while((num/a[f])>=1)

{

b[i]=a[f];

num=num-a[f];

i++;

}

if(num<=0)

break;

}

for(intj=0;j

cout<

cout<

}

intmain()

{

doublemoney;

cout<<"输入金钱数目:

";

cin>>money;

back(money);

return0;

}

//输入234,输出234+432

#include

intchange(intb)

{

inttemp,change=0;

while(b)

{

temp=b%10;

b=b/10;

change=change*10+temp;

}

returnchange;

}

intmain()

{

inta;

cout<<"putanumber:

";

cin>>a;

cout<<"逆序后的数是:

"<

cout<<"相加后的数是:

"<

return0;

}

//eg,输入5,输出:

ACFJO

BEIN

DHM

GL

K

charnum='A';

intn;

chara[20][20]={'0'};

cin>>n;

for(intq=1;q<=n;q++)

{

for(inti=q-1,j=0;i>=0&&j

{

a[i][j]=num;

num++;

}

}

intab=n;

for(intm=0;m

{

for(intf=0;f

{

cout<

}

ab--;

cout<

}

return0;

 

//输入10个学生成绩,统计最高分,最低分和平均分

#include

usingnamespacestd;

voidmain()

{

floatstudent[10],max,min,avg;

cout<<"puttenstudents'score"<

for(inti=0;i<10;i++)

cin>>student[i];

max=student[0];

min=student[0];

avg=student[0];

for(intj=1;j<10;j++)

{

avg+=student[j];

if(student[j]>max)

max=student[j];

elseif(student[j]

min=student[j];

}

cout<<"themaxis:

"<

cout<<"theminis:

"<

cout<<"theavgis:

"<

}

/*输出35个数据的杨辉三角,例如:

1

11

121

1331

14641*/

#include

usingnamespacestd;

voidmain()

{

inti,count=0,temp=0;

inta[20][20];

for(i=0;;i++)

{

count+=i;

if(count>=35)

break;

}

for(intm=0;m

for(intn=0;n<=i;n++)

a[m][n]=0;

for(intm=1;m

{

for(intn=1;n<=m;n++)

{

a[0][0]=1;

a[n][0]=1;

a[m][n]=a[m-1][n-1]+a[m-1][n];

//cout<

}

}

for(intm=0;m

{

for(intn=0;n<=m;n++)

{

temp++;

cout<

if(temp>=35)//控制只输出35个数

break;

}

cout<

}

}

 

//输入正偶数,分解成两个素数之和

//(正偶数分解成两个素数,这两个素数一定是奇数,所以从3开始)

#include

#include

#include

usingnamespacestd;

voidmain()

{

intn,i,j;

cout<<"putn(n>3的偶数):

";

cin>>n;

while(n==2||n%2!

=0)

{

cout<<"error,pleaseputnagain:

";

cin>>n;

}

if(n==4)

cout<<"2"<<""<<"2"<

for(inta=3;a<=n/2;a+=2)

{

for(i=2;i

if(a%i==0)//a不是素数

break;

if(i>=a)//找到了素数

{

intb=n-a;

for(j=2;j

if(b%j==0)

break;

if(j>=b)

{

cout<

//break;//找到一种结果即终止

}

}

}

}

//十进制转换为二进制

#include

usingnamespacestd;

voidmain()

{

intn,i=0;

intb[16];

cout<<"inputn:

";

cin>>n;

while(n!

=0)

{

b[i++]=n%2;

n=n/2;

}

for(intm=i-1;m>=0;m--)

cout<

cout<

}

 

//直接插入排序,array[0]做哨兵

#include

usingnamespacestd;

voidmain()

{

cout<<"putthe10numbers:

"<

inti,j,array[11];

for(i=1;i<11;i++)

cin>>array[i];

cout<

for(i=2;i<=10;i++)

{

if(array[i]

{

array[0]=array[i];

j=i-1;

do//元素后移

{

array[j+1]=array[j];

j--;

}while(array[0]

array[j+1]=array[0];//插入元素的位置

}

}

for(i=1;i<11;i++)

{

cout<

}

cout<

}

 

//冒泡排序

#include

usingnamespacestd;

#definelen10

voidmain()//排序元素array[0]~array[len-1]

{

inti,j,temp,array[len]={0,2,3,70,5,8,4,1,9,6};

for(i=0;i

cout<

cout<

for(i=1;i

{

for(j=len-1;j>=i;j--)//对数组元素自后向前扫描,j--

{

if(array[j]

{

temp=array[j];

array[j]=array[j-1];

array[j-1]=temp;

}

}

}

for(i=0;i

cout<

cout<

}

方法二:

往后冒泡,最大的往后沉;

#include

#definelen10

voidswap(intarr[],intx,inty)

{

inttemp=arr[x];

arr[x]=arr[y];

arr[y]=temp;

}

voidbubble(intarr[])

{

for(inti=0;i

for(intj=0;j

{

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

swap(arr,j,j+1);

}

}

}

voidmain()

{

intarr[10]={12,3,45,67,8,0,3,23,1,2};

inttotal=0;

bubble(arr);

for(intn=0;n

{

cout<

total++;

if(total%5==0)

cout<

}

}

直接选择排序函数

voidselectSort(intarr[])

{

for(inti=0;i

for(intj=i+1;j

{

if(arr[j]

swap(arr,j,i);

}

}

快速排序:

voidquick_sort_sub(intarr[],intleft,intright)

{

intleft_index=left;

intright_index=right;

intmid_number=arr[(left+right)/2];

while(left_index<=right_index)

{

while(arr[left_index]

left_index++;

while(arr[right_index]>mid_number)

right_index--;

if(left_index<=right_index)

{

swap(arr,left_index,right_index);

left_index++;

right_index--;

}

}

if(right_index>left)

{

quick_sort_sub(arr,left,right_index);

}

if(left_index

{

quick_sort_sub(arr,left_index,right);

}

}

voidquick_sort(intarr[])

{

quick_sort_sub(arr,0,len-1);

}

 

//直接选择排序

#include

usingnamespacestd;

#definelen10

voidmain()//排序元素array[0]~array[len-1]

{

inti,j,temp,array[len]={0,20,3,70,5,8,4,1,9,6};

for(i=0;i

cout<

cout<

for(i=0;i

{

for(j=i+1;j

if(array[j]

{

temp=array[j];

array[j]=array[i];

array[i]=temp;

}

}

for(i=0;i

cout<

cout<

}

 

//快速排序

#include

#defineswap(a,b){inttemp;temp=a;a=b;b=temp;}//注意a,b不用标注类型

usingnamespacestd;

voidquick_sort_sub(int*data,intleft,intright)

{

intleft_index=left;

intright_index=right;

intpivot=data[(left+right)/2];

while(left_index<=right_index)//注意

{

while(data[left_index]

left_index++;

while(data[right_index]>pivot)

right_index--;

if(left_index<=right_index)

{

swap(data[left_index],data[right_index]);

left_index++;

right_index--;

}

}

if(right_index>left)

{

quick_sort_sub(data,left,right_index);

}

if(left_index

{

quick_sort_sub(data,left_index,right);

}

}

voidquick_sort(int*data,intdata_size)

{

quick_sort_sub(data,0,data_size-1);

}

voidmain()

{

intdata_size;

cout<<"inputthedata_size:

";

cin>>data_size;

intdata[100];

cout<<"inputthedata[]:

"<

for(inti=0;i

cin>>data[i];

quick_sort(data,data_size);

for(inti=0;i

{

cout<

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

cout<

}

}

 

//逆序输出数组

#include

voidswap(int&a,int&b)

{

intp=a;

a=b;

b=p;

}

voidmain()

{

intarr[]={2,12,4,56,7,9,10};

intm=sizeof(arr)/4;//0-m

inti=0;

inttemp=m;

while(i<=m/2)

{

swap(arr[i],arr[temp-1]);

i++;

temp--;

}

for(intj=0;j

{

cout<

}

cout<

}

 

字符串,strcpy函数相关实现

#include

char*strcpy(char*a,char*b)//主要函数的实现过程

{

while((*(a++)=*(b++))!

=0);

returna;

}

 

voidmain()

{

charstr[]="hello";写出*str=”hello”形式会出错,不知道为什么?

charstr1[]="hihi";

strcpy(str,str1);

cout<

cout<

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1