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

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

原文地址:https://www.cnblogs.com/ming-4/p/10432216.html

时间: 2024-10-07 14:19:20

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

0709 C语言常见误区----------二维数组做参数

总结: 1.二维数组名是指向一位数组的指针,本例中,其类型为 int (*)[4],在传递的过程中丢失了第一维的信息,因此需要将第一维的信息传递给调用函数. 关于二维数组名代表的类型,可通过下面的例子看出. 1 /************************************************************************* 2 > File Name: test_2arr.c 3 > Author:Monica 4 > Mail:[email prot

C语言如何动态分配二维数组

C语言如何动态分配二维数组 使用malloc().free()函数进行动态分配,这两个函数包含于stdlib.h或malloc.h中 假如要申请一个3行5列的二维数组内存 1 #include <stdlib.h> 2 int main() 3 { 4 // 为二维数组分配3行 5 int **a = (int **)malloc(3 * sizeof(int *)); 6 // 为每行分配5列 7 for(int i = 0; i < 3; i++) 8 { 9 a[i] = (int

c语言之指向二维数组元素的指针变量

如何使用指针对二维数组进行遍历? 首先我们需要明确的是:二维数组在内存中是连续的,比如一个二维数组int a[2][3]={1,2,3,4,5,6},可以视作是两个一维数组构成的,即int a0[3] ={1,2,3},int a1[3] = {4,5,6},我们知道,一维数组在内存中是连续的一块内存,并且数组名a0,a1代表的就是该数组首元素的地址,而正因为二维数组的内存中的地址也是连续的,所以a1的首元素的地址就为a0数组首元素的地址+a0中元素的个数,因此,我们就可以通过让指针不断+1来访

PHP计算二维数组指定元素的和

array_sum(array_column($arr, 'num')); //计算二维数组指定元素的和 $arr = [ [ 'id'=>1, 'num'=>3, ], [ 'id'=>2, 'num'=>4, ], [ 'id'=>3, 'num'=>1, ], ]; //计算二维数组指定元素的和 $arr = array_sum(array_column($arr, 'num'));//输出8 var_dump($arr); 原文地址:https://www.cn

递归 将一个十进制数转化为任意进制字符串

Create All kinds of guns. 设计重点: 1 基类作接口 2 继承类是各种不同的类 3 构建工厂类,然后根据需要创造不同的类,可以传入关键字,或者索引等. #pragma once #include <string> #include <iostream> using namespace std; //Base class class Gun { public: virtual string description() { return "Gener

C语言 动态创建二维数组

/*C语言 如何动态创建二维数组 转化为一维数组申请数组,创建和释放都比较简单 */ #include <stdlib.h> #include <stdio.h> #include <malloc.h> #define RANK 10 #define COLUMN 7 int main() { int i,j; int (*p)[COLUMN]; //动态生成二维数组,指定列数为COLUMN,如果想改,自己该里面 //的参数,如果想定义n行2列就为: p=(int (*

C语言第五讲:二维数组,多维数组

一.二维数组 二维数组的定义:数据类型  数组名[常量表达式1][常量表达式2] = {值1, 值2,....值n}; 例如: int array[3][3] = {{1, 2, 3}, {2, 1, 3}, {3, 1, 2}}; 二维数组array[3][3] 相当于是由三个含有三个元素的一维数组所组成的. 数组元素个数怎么求:两个维度的下标相乘 访问二维数组中的元素:双下标 多维数组 : 三维数组:数组名[常量表达式1][常量表达式2][常量表达式3] = {值1, 值2,....值n};

c语言指针与二维数组

1 指针数组 例子: int i,j; int x[2][3]={{1,2,3},{4,5,6}}; int *p[2]={x[0],x[1]};//声明一个含有2个元素的一维int指针数组p for(i=0;i<2;i++) { for(j=0;j<3;j++) { cout<<*(p[i]+j)<<endl; } } 输出语句为cout<<p[i][j]<<endl;也是可以的. int i,j; int x[2][3]={{1,2,3},{

C语言笔记(二维数组与数值指针)

一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数组来代替.但是在实际的应用中,有时候使用二维数组会更加直观,方便程序的编程. (3)两者在内存使用效率上是一模一样的. 二.二维数组的第一维和第二维概念 (1)例如 int a[2][5]中,前面的2表示第一维:后面的5表示第二维 (2) 二维数组的第一维表示最外部的那一层,第一维本身也是一个数组,