c程序小练习包括几种排序算法Word文件下载.docx
《c程序小练习包括几种排序算法Word文件下载.docx》由会员分享,可在线阅读,更多相关《c程序小练习包括几种排序算法Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
"
;
endl;
}
intmain()
doublemoney;
cout<
输入金钱数目:
cin>
>
money;
back(money);
return0;
//输入234,输出234+432
intchange(intb)
inttemp,change=0;
while(b)
{
temp=b%10;
b=b/10;
change=change*10+temp;
returnchange;
inta;
putanumber:
a;
逆序后的数是:
change(a)<
相加后的数是:
a+change(a)<
return0;
//eg,输入5,输出:
ACFJO
BEIN
DHM
GL
K
charnum='
A'
intn;
chara[20][20]={'
0'
};
n;
for(intq=1;
q<
=n;
q++)
for(inti=q-1,j=0;
i>
=0&
&
q;
i--,j++)
a[i][j]=num;
num++;
intab=n;
for(intm=0;
m<
m++)
{
for(intf=0;
ab;
{
cout<
a[m][f]<
}
ab--;
//输入10个学生成绩,统计最高分,最低分和平均分
iostream>
usingnamespacestd;
voidmain()
floatstudent[10],max,min,avg;
puttenstudents'
score"
for(inti=0;
i<
10;
i++)
cin>
student[i];
max=student[0];
min=student[0];
avg=student[0];
for(intj=1;
avg+=student[j];
if(student[j]>
max)
max=student[j];
elseif(student[j]<
min)
min=student[j];
themaxis:
max<
theminis:
min<
theavgis:
avg/5;
/*输出35个数据的杨辉三角,例如:
1
11
121
1331
14641*/
inti,count=0,temp=0;
inta[20][20];
for(i=0;
count+=i;
if(count>
=35)
break;
m++)//初始化数组为0
for(intn=0;
n<
=i;
n++)
a[m][n]=0;
for(intm=1;
for(intn=1;
=m;
a[0][0]=1;
a[n][0]=1;
a[m][n]=a[m-1][n-1]+a[m-1][n];
//cout<
a[m][n]<
for(intm=0;
m++)//输出数组
for(intn=0;
temp++;
cout<
if(temp>
=35)//控制只输出35个数
break;
//输入正偶数,分解成两个素数之和
//(正偶数分解成两个素数,这两个素数一定是奇数,所以从3开始)
math.h>
iomanip>
intn,i,j;
putn(n>
3的偶数):
while(n==2||n%2!
error,pleaseputnagain:
if(n==4)
2"
for(inta=3;
a<
=n/2;
a+=2)
for(i=2;
if(a%i==0)//a不是素数
if(i>
=a)//找到了素数
{
intb=n-a;
for(j=2;
b;
if(b%j==0)
break;
if(j>
=b)
{
cout<
setw(6)<
b<
//break;
//找到一种结果即终止
}
//十进制转换为二进制
intn,i=0;
intb[16];
inputn:
while(n!
b[i++]=n%2;
n=n/2;
}
for(intm=i-1;
m>
=0;
m--)
cout<
b[m];
//直接插入排序,array[0]做哨兵
putthe10numbers:
inti,j,array[11];
for(i=1;
11;
array[i];
for(i=2;
=10;
if(array[i]<
array[i-1])
array[0]=array[i];
j=i-1;
do//元素后移
array[j+1]=array[j];
j--;
}while(array[0]<
array[j]);
array[j+1]=array[0];
//插入元素的位置
array[i]<
//冒泡排序
#definelen10
voidmain()//排序元素array[0]~array[len-1]
inti,j,temp,array[len]={0,2,3,70,5,8,4,1,9,6};
len;
i++)//打印数组元素
i++)//最多len-1趟排序
for(j=len-1;
j>
j--)//对数组元素自后向前扫描,j--
if(array[j]<
array[j-1])
temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
方法二:
往后冒泡,最大的往后沉;
voidswap(intarr[],intx,inty)
inttemp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
voidbubble(intarr[])
i++){
for(intj=0;
len-i-1;
if(arr[j]>
arr[j+1])
swap(arr,j,j+1);
intarr[10]={12,3,45,67,8,0,3,23,1,2};
inttotal=0;
bubble(arr);
for(intn=0;
arr[n]<
total++;
if(total%5==0)
直接选择排序函数
voidselectSort(intarr[])
len-1;
for(intj=i+1;
if(arr[j]<
arr[i])
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]<
mid_number)
left_index++;
while(arr[right_index]>
right_index--;
if(left_index<
swap(arr,left_index,right_index);
if(right_index>
left)
quick_sort_sub(arr,left,right_index);
if(left_index<
right)
quick_sort_sub(arr,left_index,right);
voidquick_sort(intarr[])
quick_sort_sub(arr,0,len-1);
//直接选择排序
inti,j,temp,array[len]={0,20,3,70,5,8,4,1,9,6};
i++)//最多len-1趟排序,最后一次不用再排序,直接比较//出结果
for(j=i+1;
j++)
array[i])
array[j]=array[i];
array[i]=temp;
//快速排序
#defineswap(a,b){inttemp;
temp=a;
a=b;
b=temp;
}//注意a,b不用标注类型
voidquick_sort_sub(int*data,intleft,intright)
intpivot=data[(left+right)/2];
=right_index)//注意
while(data[left_index]<
pivot)
left_index++;
while(data[right_index]>
swap(data[left_index],data[right_index]);
quick_sort_sub(data,left,right_index);
quick_sort_sub(data,left_index,right);
voidquick_sort(int*data,intdata_size)
quick_sort_sub(data,0,data_size-1);
intdata_size;
inputthedata_size:
data_size;
intdata[100];
inputthedata[]:
data[i];
quick_sort(data,data_size);
data[i]<
if((i+1)%5==0)
//逆序输出数组
voidswap(int&
a,int&
b)
intp=a;
a=b;
b=p;
intarr[]={2,12,4,56,7,9,10};
intm=sizeof(arr)/4;
//0-m
inttemp=m;
while(i<
=m/2)
swap(arr[i],arr[temp-1]);
i++;
temp--;
m;
arr[j]<
字符串,strcpy函数相关实现
#include<
char*strcpy(char*a,char*b)//主要函数的实现过程
{
while((*(a++)=*(b++))!
=0);
returna;
charstr[]="
hello"
写出*str=”hello”形式会出错,不知道为什么?
charstr1[]="
hihi"
strcpy(str,str1);
str;