实验十二 指针的应用
Posted 么么打123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验十二 指针的应用相关的知识,希望对你有一定的参考价值。
1.
1 #include<stdio.h> 2 3 static int x,y,c,d; 4 5 void change(int *a,int *b); 6 void change1(); 7 8 int main() 9 { 10 int a,b; 11 12 scanf("%d%d",&a,&b); 13 14 change(&a,&b); 15 printf("%d %d\\n",a,b); 16 17 scanf("%d%d",&x,&y); 18 19 change1(x,y); 20 printf("%d %d\\n",x,y); 21 22 return 0; 23 } 24 25 void change(int *a,int *b) 26 { 27 int t; 28 29 t=*a; 30 *a=*b; 31 *b=t; 32 } 33 34 35 void change1() 36 { 37 int t; 38 39 t=x; 40 x=y; 41 y=t; 42 }
2.
1 #include<stdio.h> 2 3 void Delete(char s[]); 4 5 int main() 6 { 7 char s[]="abs16cac45ecXACWE"; 8 9 Delete(s); 10 11 printf("%s\\n",&s); 12 13 return 0; 14 } 15 16 void Delete(char s[]) 17 { 18 int i,j; 19 for(i=0;s[i]!=\'\\0\';i++) 20 { 21 if(s[i]>=48&&s[i]<=57) 22 { 23 for(j=i+1;s[j-1]!=\'\\0\';j++) 24 s[j-1]=s[j]; 25 26 i--; 27 } 28 } 29 }
3.
1 #include<stdio.h> 2 3 int cnum1(char *p, char c); 4 void cnum2(char *p, char c, int *n); 5 6 int main() 7 { 8 char s[]="acfwef1646BICSxaA",c=\'a\'; 9 int sum,n=0; 10 11 sum=cnum1(s,c); 12 cnum2(s,c,&n); 13 14 printf("sum=%d,n=%d\\n",sum,n); 15 16 return 0; 17 } 18 19 int cnum1(char *p, char c) 20 { 21 int i,sum=0; 22 23 for(i=0;p[i]!=\'\\0\';i++) 24 { 25 if(p[i]==c) 26 sum++; 27 } 28 29 return sum; 30 } 31 32 void cnum2(char *p, char c, int *n) 33 { 34 int i; 35 36 for(i=0;p[i]!=\'\\0\';i++) 37 { 38 if(p[i]==c) 39 (*n)++; 40 } 41 }
4.
1 #include<stdio.h> 2 3 void swap(int a[],int N); 4 5 int main() 6 { 7 int i,N,a[20]; 8 scanf("%d",&N); 9 10 for(i=0;i<N;i++) 11 scanf("%d",&a[i]); 12 13 swap(a,N); 14 15 for(i=0;i<N;i++) 16 printf("%d ",a[i]); 17 18 return 0; 19 } 20 21 void swap(int a[],int N) 22 { 23 int i,t; 24 25 for(i=0;i<N/2;i++) 26 { 27 t=a[i]; 28 a[i]=a[N/2+1+i]; 29 a[N/2+1+i]=t; 30 } 31 }
5.
1 #include<stdio.h> 2 3 int baoshu(int n); 4 5 int main() 6 { 7 int n,i; 8 9 scanf("%d",&n); 10 11 printf("%d\\n",baoshu(n)); 12 13 return 0; 14 } 15 16 int baoshu(int n) 17 { 18 int a[n],*p,i,j=0,sum=0; 19 20 for(i=0;i<n;i++) 21 a[i]=i+1; 22 23 for(p=a,i=0;sum!=n-1;i++)//循环判断条件是保证只剩一个数 24 { 25 if((*p)!=0) 26 { 27 j++; 28 if(j%5==0)//如果退出则置0 29 { 30 (*p)=0; 31 sum++; 32 } 33 } 34 35 //构成一个圈,如果此时是数组最后一个元素,则将i置为-1,因为后面还要i++ 36 if(i==n-1) 37 { 38 i=-1; 39 p=a; 40 } 41 else 42 p++; 43 } 44 45 for(p=a,i=0;i<n;p++,i++) 46 if((*p)!=0) 47 return *p; 48 }
6.
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 #define N 15 5 6 void px(int a[]); 7 void sc(int a[],int m); 8 void sr(int a[]); 9 int js(int a[],int judge);//judge为1返回最大值,否则返回最小值 10 11 int main() 12 { 13 int a[N],m=5; 14 15 sr(a); 16 sc(a,m); 17 printf("\\n"); 18 px(a); 19 sc(a,m); 20 21 printf("\\nmax=%d,min=%d\\n",js(a,1),js(a,0)); 22 23 return 0; 24 } 25 26 //输入随机数 27 void sr(int a[]) 28 { 29 int i; 30 31 //赋值1-100随机数 32 for(i=0;i<N;++i) 33 a[i]=rand()%100+1; 34 35 } 36 37 //输出 38 void sc(int a[],int m) 39 { 40 int i; 41 42 for(i=0;i<N;++i) 43 { 44 printf("%3d ",a[i]); 45 46 if((i+1)%m==0) 47 printf("\\n"); 48 } 49 50 } 51 52 //排序 53 void px(int a[]) 54 { 55 int i,j,temp; 56 57 for(i=0;i<N-1;++i) 58 for(j=0;j<N-i-1;++j) 59 { 60 if(a[j]>a[j+1]) 61 { 62 temp=a[j]; 63 a[j]=a[j+1]; 64 a[j+1]=temp; 65 } 66 } 67 } 68 69 //求最值 70 int js(int a[],int judge) 71 { 72 int i,max=a[0],min=a[0]; 73 74 for(i=0;i<N;i++) 75 { 76 if(a[i]>max) 77 max=a[i]; 78 79 if(a[i]<min) 80 min=a[i]; 81 } 82 83 if(judge==1) 84 return max; 85 else 86 return min; 87 }
以上是关于实验十二 指针的应用的主要内容,如果未能解决你的问题,请参考以下文章