C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

时间:2021-08-20 20:26:47

//编写一个函数:从传入的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 }