Red de conocimiento informático - Computadora portátil - Preguntas sobre programación en lenguaje C. Ordenar por código de producto (tipo de carácter), si es así, ordenar por cantidad (plástico).

Preguntas sobre programación en lenguaje C. Ordenar por código de producto (tipo de carácter), si es así, ordenar por cantidad (plástico).

Primero cree una función de comparación y luego llame a qsort directamente. Si lo hace usted mismo,

Será problemático hacer coincidir diferentes tipos. Requiere un poco de esfuerzo.

void qsort(

void *base,/* Los primeros datos pueden considerarse como la primera dirección de la matriz*/

size_t num,/* Número de elementos Número*/

size_t width,/*Tamaño de datos, se puede obtener mediante sizeof*/

int (__cdecl *compare)(const void *, const void *) /*Comparar función, */

);

Comparar funciones y requisitos relacionados.

compare( (void *) & elem1, (void *) & elem2 );La rutina debe comparar los elementos y luego devolver uno de los siguientes

valores:

Comparar valor de retorno de función

Descripción

< 0

elem1 menor que elem2

elem1 equivalente a elem2

> 0

PD:

si no (strcmp(sell[i].dm,sell[j].dm==0))

Simplemente no vi que esto fuera lo que salió mal

> 0

PD:

else if(strcmp(sell[i].dm, sell[j ].dm==0))

...

debe escribirse como

else if(strcmp(sell[i].dm ,sell[j] .dm)==0)

...

advertencia C4047: 'función': 'const char *' difiere en niveles de direccionamiento indirecto de 'int '

Se refiere a sell[j].dm==0 el tipo es entero

advertencia C4024: 'strcmp': diferentes tipos para el parámetro 2 formal y real

Porque sell[ El tipo j].dm==0 es un número entero, lo que no cumple con el requisito de strcmp de que ambos parámetros sean const char *.

¡Entonces se genera una advertencia!

Dado que el puntero de C++ es en realidad un tipo de datos enteros, ¡la verificación de tipo no lo juzgará como un error!

Estrictamente hablando, ¡debería ser un error, no una advertencia! ! !

difieren diferentes

indirección medios indirectos, indirectos, deshonestos

formal: formal; etiqueta

real: real; actual; actual

La primera advertencia dice que los tipos de parámetros de función son inconsistentes,

La segunda advertencia dice que el segundo parámetro y el requisito de strcmp no coinciden.