Red de conocimiento informático - Conocimiento sistemático - Resolver problemas básicos del lenguaje C.

Resolver problemas básicos del lenguaje C.

I. Plataforma: Los elementos consecutivos iguales en el array son una plataforma.

II. Plataforma más larga: Encuentra la más larga entre todas las plataformas.

3. Hay más de un método. Desde la perspectiva del programa completo, se incluye al menos una función que implementa la función e imprime la salida.

El siguiente es el código de demostración que escribí:

Recorre la matriz para encontrar la plataforma más larga y devuelve sus posiciones inicial y final en la matriz (el valor de retorno es una matriz de punteros ). Las excepciones se lanzan directamente para que puedan ser manejadas por ellas mismas.

#includelt; stdio.hgt;

#define ML 20

int **findMaxG(int nums[], int len); plataforma larga máxima y devuelve sus posiciones inicial y final en una matriz (matriz de punteros).

La excepción devuelve NULL

int showMaxG(int *pMax[2]); //Imprime la plataforma más larga. La excepción devuelve 0

int main()

. {

int **pMax=NULL;

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

pMax= findMaxG(nums, ML);

return! showMaxG(pMax);

}

int showMaxG(int *pMax[2])

{

int *p0=pMax [0];

if(pMax [0]==NULL || pMax[1]==NULL || pMax[1]lt; pMax[0]) devuelve 0; p> printf("La plataforma más larga es: ");

while(p0lt;=pMax[1])

printf("d ",*p0);

printf("\n");

devuelve 1;

}

int **findMaxG(int nums[], int len)

{

static int *pMax[2];

int n=1, maxn=1, *p0=nums, *p1=nums;

p>

if(lenlt;=0) return NULL;

pMax[0]=pMax[1]=nums;

while(p0lt; amp;nums[len -1])

{

p1=p0 1;

while(p1lt;amp;nums[len-1])/ /cuenta la longitud actual de la plataforma

{

if(*p1!=*p0)//Comienza a calcular la nueva plataforma, la plataforma anterior termina en p1-1

romper;

p>

else

n, p1

}

if(ngt; maxn)

maxn=n, pMax [0]=p0, pMax[1]=p1-1; //Registra la plataforma más grande

p0=p1, n=1; contar la siguiente plataforma

}

return pMax

}