//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址。
//重点:切记这里a[0]就是一个地址。
1 #include<conio.h> 2 #include<stdio.h> 3 #include<string.h> 4 #include<stdlib.h> 5 6 char *fun(char (*a)[81], int num, char *max) 7 { 8 max = a[0];//切记这里a[0]就是一个地址。 9 for (int i = 1; i < num; i++) 10 { 11 if (strlen(a[i]) > strlen(max)) 12 { 13 max = a[i]; 14 } 15 } 16 return max; 17 } 18 void main() 19 { 20 FILE *wf; 21 char ss[10][81],*ps=NULL; 22 char s[3][81]={"abcd","deg","diegns"},*p=NULL; 23 int i=0,n; 24 system("CLS"); 25 printf("输入若干个字符串:"); 26 gets(ss[i]); 27 puts(ss[i]); 28 while(!strcmp(ss[i], "****")==0) /*用4个星号作为结束输入的标志*/ 29 { 30 i++; 31 gets(ss[i]); 32 puts(ss[i]); 33 } 34 n=i; 35 ps=fun(ss,n,ps); 36 printf("\nmax=%s\n",ps); 37 /******************************/ 38 wf=fopen("out.dat","w"); 39 p=fun(s,3,p); 40 fprintf(wf,"%s",p); 41 fclose(wf); 42 /*****************************/ 43 }
//函数fun的功能:将十进制正整数转化为k进制数,并按位输出。
1 #include <stdio.h> 2 #include <conio.h> 3 /*************found**************/ 4 void fun(int m,int k) 5 { int aa[20], i; 6 for(i=0;m;i++) 7 { 8 /*************found**************/ 9 aa[i]=m%k; 10 m/=k; 11 } 12 for(;i;i--) 13 /*************found**************/ 14 printf("%d",aa[i-1]); 15 } 16 void main() 17 { 18 int b,n; 19 printf("\nPlease enter a number and a base:\n"); 20 scanf("%d%d",&n,&b); 21 fun(n,b); 22 printf("\n "); 23 }
//函数fun功能是:建立一个N*N的矩阵,矩阵元素的构成规律是:最外层全是1,从外向内第二层全是2,依次类推。
//重点:第四行,以及赋值的规律。
1 #include <stdio.h> 2 #define N 7 3 /**********found**********/ 4 void fun(int (*a)[N])//这里是重点,省略第一个方括号。 5 { int i,j,k,m; 6 if(N%2==0) m=N/2 ; 7 else m=N/2+1; 8 for(i=0; i<m; i++) { 9 /**********found**********/ 10 for(j=i; j<N-i; j++) 11 a[i][j]=a[N-i-1][j]=i+1; 12 for(k=i+1; k<N-i; k++) 13 /**********found**********/ 14 a[k][i]=a[k][N-i-1]=i+1; 15 } 16 } 17 void main() 18 { int x[N][N]={0},i,j; 19 fun(x); 20 printf("\nThe result is:\n"); 21 for(i=0; i<N; i++) 22 { for(j=0; j<N; j++) printf("%3d",x[i][j]); 23 printf("\n"); 24 } 25 }