C语言几个常用算法

  • 格式:pdf
  • 大小:153.38 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.5 十进制数转换成二进制数的函数 函数设计如何下:
/*用于把十进制数转换成二进制数的函数*/ void f() {
int j,n,a[100],i=0; printf("请输入十进制数:"); scanf("%d",&n); printf("输出二进制数为:"); while(n>0) { a[i]=n%2; i=i+1; n=n/2; } for(j=i-1;j>-1;j--) printf("%d",a[j]); printf("\n"); }
int serch(int x,int v[],int n) {
int low,mid,high; low=0; high=n-1; while(low<=high) { mid=(low+high)/2; if(x<v[mid]) high=mid-1; else if(x>v[mid]) low=mid+1; else if(x==v[mid]) return mid; } return -1; } /*用于排列数组元素的函数*/ void pailie() { int a[N],i,j,k,t; printf("请输入数据:\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++)
*");
printf("\n
*
2.打印九九乘法表
*");
printf("\n
*
3.数组排列、二分查找
*");
printf("\n
*
4.输出 100~200 内的所有素数
*");
printf("\n
*
5.十进制数转换成二进制数
*");
printf("\n
*
6.不用 strcat()函数实现字符串连接
*");
{ k=i;for(j=i+1;j<N;j++) if(a[k]>=a[j]) k=j; if(k!=i) t=a[i],a[i]=a[k],a[k]=t;
} for(i=0;i<N;i++) printf("a[%d]=%d ",i,a[i]);printf("\n"); printf("请输入要查找的数据:\n"); scanf("%d",&k); if(serch(k,a,N)==-1) printf("找不到%d!\n",k); else printf("It is a[%d]!\n",serch(k,a,N)); }
int a[30][30], x, y,n; printf("请输入 n 的值:"); scanf("%d",&n); for(x=0;x<n;x++) for(y=0;y<n;y++) a[x][y]=0; for(x=0;x<n;x++) a[x][0]=1; for(x=1;x<n;x++) for(y=1;y<n;y++) {
桂林航天工业高等专科学校
《C 语言程序设计》课程设计报告
设计选题: 常用算法集
专 业: 软件技术 学 号: 201002520123 姓 名: 指导老师:
2011 年 3 月 8 日
1
目录
1. 课程设计目的和要求............................................................................................. 2 2. 课程的主要内容..................................................................................................... 2 3.实践要求:............................................................................................................ 2 4.课程设计题目描述和要求.................................................................................... 2 5. 算法实现及源码..................................................................................................... 3 6. 总结......................................................................................................................... 7 7. 参考资料:............................................................................................................. 8
求π的近似值的函数
打印九九乘法表的函数

数组排列、二分查找的函数


输出 100~200 内的所有素数的函数


十进制数转换成二进制数的函数
不用 strcat()函数实现字符串连接的函数
输出杨辉三角的前 n 行的函数
用递归方法求 Fibonacci 数列前 n 项的值的函数
主函数
图 1 结构图
5. 算法实现及源码
5.4 输出 100~200 内的所有素数的函数
4
函数设计如何下:
/*用于判断素数的函数*/ int me(int m) {
int i; for(i=2;i<m;i++) if(m%i==0) {return 0;break;}
if(i=m) return 1; } /*用于输出某范围内的素数的函数*/ void sushu() {
1. 课程设计目的和要求
本课程设计是针对刚学完 C 语言的计算机类专业学生的课程设计教学。C 语言是学生 的第一门计算机高级语言课程,课程结束后,学生已经对 C 语言程序设计有了较全面的了 解,但接触的基本上是为了阐述相关概念或知识点而列举的示例,都是较小的程序,程序 功能单一,因此缺乏整体观点和编写一个具体实用的综合程序的思想。
5.8 用递归方法求 Fibonacci 数列前 n 项的值的函数 函数设计如何下:
/*用递归方法求 Fibonacci 数列前 n 项的值的函数*/ int fu(int n) {
if(n==1||n==2) return 1; else return fu(n-1)+fu(n-2); } void fib() { int n,i; printf("请输整数 n:"); scanf("%d",&n);
int i,j,k,n=10; printf("请输入下限:");scanf("%d",&i); printf("请输入上限:");scanf("%d",&j); printf("结果如下:\n"); for(k=i;k<j;k++) {
if(me(k)) { printf("%-4d",k); n++; if(n%10==0) printf("\n"); } } printf("\n"); }
}
5.2 打印九九乘法表的函数
3
函数设计如何下: void jiujiu() { int i,j; for(i=1;i<=9;i++,printf("\n")) for(j=1;j<=9;j++) printf("%d*%d=%-3d",i,j,i*j); }
5.3 数组排列、二分查找的函数 函数设计如何下: /*二分法查找: x=要找的数,v[]=数组名,n=数组长度*/
case 6:lianjie();break;
case 7:yanghuishanjiao();break;
case 8:fib();break;
case 9:system("cls");break;
case 0:exit(0);
}
}
}
6. 总结
7
1) 回顾起此次课程设计,我仍感慨颇多,的确,从拿到题目到完成整个编程,从理 论到实践,在几天的日子里,可以学到很多很多的的东西,同时不仅可以巩固了 以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
2. 课程的主要内容
(1)选题 (2)进行程序结构分析 (3)程序设计实现 (4)测试程序 (5)编写、上交课程设计报告
3.实践要求:
(1)程序设计要实用。 (2)对程序进行功能模块分析、控制模块分析正确,要画出主要功能模块的流程图。 (3)编程简练,可用,界面友好,功能全面。 (4)课程设计报告、流程图要清楚。
本课程设计的目的是要培养学生初步具有系统分析思想,并能利用开发工具开发一个 简单实用的综合程序。为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理 论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际, 实践编程的能力。
要求学生以 TC 或 VC 为开发工具,完成一个小型应用软件的设计和开发。进一步提高 学生进行程序设计的能力。
a[x][y]=a[x-1][y-1]+a[x-1][y]; if(a[x][y]==1) break; } for(x=0;x<n;x++) { for(y=0;y<n;y++) { if(a[x][y]!=0) printf("%-5d",a[x][y]); } printf("\n"); } }
6
for(i=1;i<=n;i++)
printf("f(%d)=%d\n",i,fu(i));
}
5.9 主函数
函数设计如何下:
void main()
{
int n;
printf("\n
*******************常用算法集******************");
printf("\n
*
1.求π的近似值
5
printf("请输入字符串:"); scanf("%s",n); while(*p) *a++=*p++; while(*q) *a++=*q++; *a='\0'; printf("连接后的字符串为:%s\n",s); }
5.7 输出杨辉三角的前 n 行的函数 函数设计如何下:
/*输出杨辉三角的前 n 行的函数*/ void yanghuishanjiao() {
5.1 求π的近似值的函数
根据公式
4

ቤተ መጻሕፍቲ ባይዱ
1
1 3

1 5

1 7

,函数设计如何下:
void pai()
{
int s=1; float n,t,pi; t=n=1; pi=0;
do
{ pi+=t; n+=2; s=-s; t=s/n; } while(fabs(t)>=1e-6);
printf("π≈%f\n",4*pi);
while(1)
{
printf("\n 请输入:");
scanf("%d",&n);
switch(n)
{
case 1:pai();break;
case 2:jiujiu();break;
case 3:pailie();break;
case 4:sushu();break;
case 5:f();break;
5.6 不用 strcat()函数实现字符串连接的函数 函数设计如何下:
/*不用 strcat()函数实现字符串连接的函数*/ void lianjie() {
char s[30],m[20],n[20]; char *a=s,*p=m,*q=n; printf("请输入字符串:"); scanf("%s",m);
4.课程设计题目描述和要求
本课程设计选题为“常用算法集” 。其主要功能是
2
1.求π的近似值 2.打印九九乘法表 3.数组排列、二分查找 4.输出 100~200 内的所有素数 5.十进制数转换成二进制数 6.不用 strcat()函数实现字符串连接 7.输出杨辉三角的前 n 行 8.用递归方法求 Fibonacci 数列前 n 项的值 经过分析,确定本程序结构图如下图所示:
printf("\n
*
7.输出杨辉三角的前 n 行
*");
printf("\n
*
8.用递归方法求 Fibonacci 数列前 n 项的值 *");
printf("\n
*
9.清屏
*");
printf("\n
*
0.退出
*");
printf("\n
***********************************************\n");

相关主题