您的位置:首页 > 编程语言 > C语言/C++

C语言培训_007

2016-07-11 22:24 441 查看

char型的插入排序选择排序和快排

#include"stdio.h"

void xuanzepaixu(unsigned char *a,int geshu)
{
for(int i=0;i<geshu-1;i++)
{
int k=i;
for(int j=i+1;j<geshu;j++)
{
if(a[k]>a[j])
{
k=j;
}
}
if(i!=k)
{
unsigned char temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
}

void ChaRupaixu(unsigned char *a,int geshu)
{
for(int i=1;i<geshu;i++)
{
unsigned char temp=a[i];
int p=i-1;
while(p>=0&&temp<a[p])
{
a[p+1]=a[p];
p--;
}
a[p+1]=temp;
}
}

void kuaisupaixu(unsigned char *a, int left, int right)
{
if(left >= right)
{
return;
}
int i = left;
int j = right;
int key = a[left];
while(i < j)
{
while(i < j && key <= a[j])
{
j--;
}
a[i] = a[j];
while(i < j && key >= a[i])
{
i++;
}
a[j] = a[i];
}
a[i] = key;
kuaisupaixu(a, left, i - 1);
kuaisupaixu(a, i + 1, right);
}

void P(unsigned char *a,int geshu)
{
for(int i=0;i<geshu;i++)
{
printf("a[%d]=%c\n",i,a[i]);
}
}

int main()
{
unsigned char a[]={'a','m','k','m','c','z','k'};
printf("\n原数列为:\n");
P(a,7);
xuanzepaixu(a,7);
printf("\n选择排序的结果为:\n");
P(a,7);

unsigned char c[]={'a','m','k','m','c','z','k'};
printf("\n原数列为:\n");
P(c,7);
ChaRupaixu(c,7);
printf("\n插入排序的结果为:\n");
P(c,7);

unsigned char m[]={'a','m','k','m','c','z','k'};
printf("\n原数列为:\n");
P(m,7);
kuaisupaixu(m,0,6);
printf("\n快速排序的结果为:\n");
P(m,7);

return 0;
}

凯撒密码的加密和解密_有结束符

#include"stdio.h"
#include"stdlib.h"
unsigned char *jiami(unsigned char *a)
{
for(int i=0;a[i]!='\0';i++)
{
if((a[i]>='a'&&a[i]<'x')||(a[i]>='A'&&a[i]<'X'))
{
a[i]=a[i]+3;
}
else if((a[i]>='x'&&a[i]<='z')||(a[i]>='X'&&a[i]<='Z'))
{
a[i]=a[i]-23;
}
}
printf("加密后是:%s\n",a);
return a;
}

unsigned char *jiemi(unsigned char *a)
{
for(int i=0;a[i]!='\0';i++)
{
if((a[i]>='d'&&a[i]<='z')||(a[i]>='D'&&a[i]<='Z'))
{
a[i]=a[i]-3;
}
else if((a[i]>='a'&&a[i]<='c')||(a[i]>='A'&&a[i]<='c'))
{
a[i]=a[i]+23;
}
}
printf("解密后是:%s\n",a);
return a;
}

int main()
{
unsigned char a[]="HAPPY NEW YEAR happy new yeaar";
printf("原数组为:%s\n",a);
jiami(a);
jiemi(a);
return 0;
}


int型插入排序

#include"stdio.h"

unsigned int *ChaRupaixu(unsigned int *a,int geshu)
{
int temp,j;
for(int i=1;i<geshu;i++)
{
temp=a[i];
j=i-1;
while(j>=0&&a[j]>temp)
{
a[j+1]=a[j];
j--;
}
}
return a;
}

void P(unsigned int *a,int geshu)
{
for(int i=0;i<geshu;i++)
{
printf("a[%d]=%d\n",i+1,a[i]);
}
}

int main()
{

unsigned int c[]={3,1,4,6,5,1,9,4,3};
printf("\n原数列为:\n");
P(c,9);
ChaRupaixu(c,9);
printf("\n插入排序的结果为:\n");
P(c,9);
return 0;
}

int冒泡排序

#include"stdio.h"
unsigned int *maopaopaixu(unsigned int *a,int geshu)
{
for(int i=0;i<geshu-1;i++)
{
for(int j=i;j<geshu;j++)
{
if(a[i]>a[j])
{
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
return a;
}

void P(unsigned int *a,int geshu)
{
for(int i=0;i<geshu;i++)
{
printf("a[%d]=%d\n",i+1,a[i]);
}
}

int main()
{
unsigned int a[]={9,8,8,6,5,1,9,9,3};
printf("\n原数列为:\n");
P(a,9);
maopaopaixu(a,9);
printf("\n冒泡排序的结果为:\n");
P(a,9);
return 0;
}

int型选择排序

第三题
#include"stdio.h"

unsigned int *xuanzepaixu(unsigned int *a,int geshu)
{
int min,temp;
for(int i=0;i<geshu-1;i++)
{
min=i;
for(int j=i+1;j<geshu;j++)
if(a[min]>a[j])
min=j;
if(min!=i)
{
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
return a;
}

void P(unsigned int *a,int geshu)
{
for(int i=0;i<geshu;i++)
{
printf("a[%d]=%d\n",i+1,a[i]);
}
}

int main()
{
unsigned int b[]={3,3,8,6,5,1,4,4,3};
printf("\n原数列为:\n");
P(b,9);
printf("\n选择排序的结果为:\n");
P(b,9);
return 0;
}

判断完数

#include"stdio.h"
#include"stdbool.h"

int yinzihe(int num)
{
int s=0;
for(int i=1;i<num;i++)
{
if(num%i==0)
{
s=s+i;
}
}
return s;
}
bool wanshu(int num)
{
bool b=false;
if(yinzihe(num)==num)
{
b=true;
}
return b;
}

int main()
{
int num;
printf("输入一个数字判断是否为完数\n");
scanf("%d",&num);
if(wanshu(num)==true)
{
printf("是完数\n");
}
else
{
printf("不是完数\n");
}

return 0;
}

求精确到n的E

#include"stdio.h"
long long int jiecheng(int n)
{
long long int s=1;
for(int i=1;i<=n;i++)
{
s=s*i;
}
return s;
}

int main()
{
double e=1;
printf("输入近似的精度n(如0.001)\n");
float n;
scanf("%f",&n);
for(int i=1;jiecheng(i)<1/n;i++)
{
e=e+1.0/jiecheng(i);
}
printf("结果为%lf\n",e);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息