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; }
相关文章推荐
- 【数字图像】BMP位图的头文件
- 【c++程序】全局变量和局部变量汇总
- C语言培训_006
- C++ 类模板二(类模版与友元函数)
- 《机器学习实战》第5章逻辑回归算法的C++实现方式
- c++代码习惯
- 初步了解c++的文件输入输出
- 大话设计模式———c++反射机制实现
- [c/c++]指针(2)
- HDU-2069-Coin Change
- [Reprint] C++函数模板与类模板实例解析
- 提高项目30.6-删除字符串前面的空格
- C++中union的使用
- C++中union的使用
- C语言Printf()&scanf() 学习笔记
- 【c++程序】C/C++中内存区域划分
- 全排列-字典序
- C++ 类模板一(类模板的定义)
- [c/c++]指针(1)
- 提高项目30.5-统计单词的个数