人人范文网 范文大全

c语言程序分类总结

发布时间:2020-03-02 05:50:57 来源:范文大全 收藏本文 下载本文 手机版

一、选择排序法:

1、函数方法: #include void main() {void sort(int array[],int n); int a[10],i; printf(\"enter array:\\n\"); for(i=0;i

scanf(\"%d\",&a[i]); sort(a,10); printf(\"The sorted array:\\n\"); for(i=0;i

printf(\"%d \",a[i]); printf(\"\\n\"); }

void sort(int array[],int n) {int i,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(array[j]

k=j;

t=array[k];array[k]=array[i];array[i]=t; } }

2、数组方法:实验6_1 #include void main() {int i,j,min,temp,a[11];

printf(\"enter data:\\n\");

for (i=1;i

{printf(\"a[%d]=\",i);

scanf(\"%d\",&a[i]);

}

printf(\"\\n\");

printf(\"The orginal numbers:\\n\");

for (i=1;i

printf(\"%5d\",a[i]);

printf(\"\\n\");

for (i=1;i

{min=i;

for (j=i+1;ja[j]) min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

printf(\"\\nThe sorted numbers:\\n\");

for (i=1;i

printf(\"%5d\",a[i]);

printf(\"\\n\"); }

3、指针方法:(教材209 例题8.9) #include void main() {void sort(int x[ ],int n); int *p,i,a[10]; p=a; for(i=0;i

scanf(\"%d\",p++); p=a; sort(p,10); for(p=a,i=0;i

{printf(\"%d \",*p);p++;} printf(\"\\n\"); }

void sort(int x[],int n) {int i,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(x[j]>x[k]) k=j;

if(k!=i)

{t=x[i];x[i]=x[k];x[k]=t;}

} }

二、素数算法:

1、筛选法求素数(教辅41.1题) #include #include void main() {int i,j,n,a[101];

for (i=1;i

a[i]=i;

a[1]=0;

for (i=2;i

for (j=i+1;j

{if(a[i]!=0 && a[j]!=0)

if (a[j]%a[i]==0)

a[j]=0;

}

printf(\"\\n\");

for (i=2,n=0;i

{ if(a[i]!=0)

{printf(\"%5d\",a[i]);

n++;

}

if(n==10)

{printf(\"\\n\");

n=0;

}

}

printf(\"\\n\"); }

2、(1)For循环方法: #include #include void main() {int m,i,k;

printf(\"please enter a integer number:\");

scanf(\"%d\",&m);

k=sqrt(m);

for (i=2;i

if(m%i==0) break;

if(i>k) printf(\"%d is a prime number.\\n\",m);

else printf(\"%d is not a prime number.\\n\",m); }

(2)求100~200之间素数: # include # include void main() {int m,k,i,n=0;

for(m=101;m

{ k=sqrt(m);

for (i=2;i

if (m%i==0) break;

if (i>=k+1)

{printf(\"%d \",m);

n=n+1;

}

if(n%10==0) printf(\"\\n\");

}

printf (\"\\n\"); }

3、函数方法:实验7_1(教辅63.3题) #include void main() {int prime(int);

int n;

printf(\"\\ninput an integer:\");

scanf(\"%d\",&n);

if (prime(n))

printf(\"\\n %d is a prime.\\n\",n);

else

printf(\"\\n %d is not a prime.\\n\",n); }

int prime(int n)

{int flag=1,i;

for (i=2;i

if (n%i==0)

flag=0;

return(flag);

}

三、最值问题:

1、函数方法,两个数比较大小(教材144.例题7.2) #include void main() { int max(int x,int y);

int a,b,c;

scanf(\"%d,%d\",&a,&b);

c=max(a,b);

printf(\"max is %d\\n\",c); }

int max(int x,int y) {

int z;

z=x>y?x:y;

return(z); }

2、二维数组,求出其中值最大的那个元素值:(教材123.例题6.5) #include void main() {int i,j,row=0,colum=0,max;

int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};

max=a[0][0];

for (i=0;i

for (j=0;j

if (a[i][j]>max)

{max=a[i][j];

row=i;

colum=j;

}

printf(\"max=%d,row=%d,colum=%d\\n\",max,row,colum); }

3、有三个字符串,要求找出其中最大者(教材136.例题6.9) #include #include void main ( ) {

char string[20];

char str[3][20];

int i;

for (i=0;i

gets (str[i]);

if (strcmp(str[0],str[1])>0)

strcpy(string,str[0]);

else

strcpy(string,str[1]);

if (strcmp(str[2],string)>0)

strcpy(string,str[2]);

printf(\"\\nthe largest string is:\\n%s\\n\",string); }

4、函数方法,四个整数,找出最大值:(教材152.例题7.5) #include void main() { int max_4(int a,int b,int c,int d);

int a,b,c,d,max;

printf(\"Please enter 4 interger numbers:\");

scanf(\"%d %d %d %d\",&a,&b,&c,&d);

max=max_4(a,b,c,d);

printf(\"max=%d \\n\",max); }

int max_4(int a,int b,int c,int d) {int max_2(int a,int b); int m;

m=max_2(a,b); m=max_2(m,c); m=max_2(m,d); return(m); }

int max_2(int a,int b)

这也可以这么写 int max_2(int a,int b) {return(a>b?a:b);

{if(a>b) return a; }

else

return b; }

四、辗转相除问题:(最大公约数最小公倍数问题)

1、一般法,求最大公约数和最小公倍数(教辅26页,第一题) #include void main() {

int p,r,n,m,temp;

printf(\"请输入两个正整数n,m:\");

scanf(\"%d,%d,\",&n,&m);

if (n

{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!=0)

{

r=n%m;

n=m;

m=r;

}

printf(\"它们的最大公约数为:%d\\n\",n);

printf(\"它们的最小公约数为:%d\\n\",p/n); }

2、函数法: void main() {int hcf(int,int);

int lcd(int,int,int);

int u,v,h,l;

scanf(\"%d,%d\",&u,&v);

h=hcf(u,v);

printf(\"H.C.F=%d\\n\",h);

l=lcd(u,v,h);

printf(\"L.C.D=%d\\n\",l); }

int hcf(int u,int v) {int t,r; if (v>u)

{t=u;u=v;v=t;} while ((r=u%v)!=0)

{u=v;

v=r;} return(v); }

int lcd(int u,int v,int h)

{

return(u*v/h);

}

五、有关指针的实验题:

1、实验9-1(输入3个整数,由小到大的顺序排列) (1)#include void main() { void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf(\"input three integer n1,n2,n3:\"); scanf(\"%d,%d,%d\",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1>n2) swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); printf(\"Now,the order is:%d,%d,%d\\n\",n1,n2,n3); }

void swap(int *p1,int *p2)

{int p;

p=*p1; *p1=*p2; *p2=p;

} (2)#include #include void main() {void swap(char *,char *); char str1[20],str2[20],str3[20]; printf(\"input three line:\\n\"); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(\"Now,the order is:\\n\"); printf(\"%s\\n%s\\n%s\\n\",str1,str2,str3); }

void swap(char *p1,char *p2) {char p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }

2、实验9_2(将n个数,输入时顺序的逆序排列) #include void main() {void sort (char *p,int m); int i,n; char *p,num[20]; printf(\"input n:\"); scanf(\"%d\",&n); printf(\"please input these numbers:\\n\"); for (i=0;i

scanf(\"%d\",&num[i]); p=&num[0]; sort(p,n); printf(\"Now,the sequence is:\\n\"); for (i=0;i

printf(\"%d \",num[i]); printf(\"\\n\"); }

void sort (char *p,int m) {int i; char temp, *p1,*p2; for (i=0;i

{p1=p+i;

p2=p+(m-1-i);

temp=*p1;

*p1=*p2;

*p2=temp;

} }

3、实验9_3(写一函数,求一个字符长度) #include void main() {int length(char *p); int len; char str[20]; printf(\"input string: \"); scanf(\"%s\",str); len=length(str); printf(\"The length of string is %d.\\n\",len); }

int length(char *p)

{int n; n=0; while (*p!=\'\\0\')

{n++;

p++;

} return(n); }

C语言程序总结

二级C语言改错题分类总结

c语言通讯录程序

C语言课程设计程序

红绿灯C语言程序

c语言实习程序

C语言程序稳定性

C语言总结

C语言总结

c语言总结

c语言程序分类总结
《c语言程序分类总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档