Red de conocimiento informático - Aprendizaje de código fuente - Lenguaje de programación tipográfica

Lenguaje de programación tipográfica

Te ayudaré con la gramática. En cuanto a la lógica, como no sé lo que quieres, olvídalo. El primer parámetro de clasificación se pasó incorrectamente. char *p es un puntero a datos char. El compilador convertirá implícitamente el xm de char xm[][] en un puntero a char[]. Cuando se pase char xm[][] como parámetro, será convertido implícitamente por el compilador en char (*xm)[]. Simplemente corrija los parámetros.

La respuesta anterior está bien, pero. . El alcance de la revisión es demasiado amplio. .

Mi blog tiene información relevante. Aprendamos juntos. /西湖奇奇

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

int main()

{

int xh[3]={1001, 1002, 1003}, bj[3]={11, 12, 11};

flotante cj1[3] = {99,5, 77,9, 92,5}, cj2[3]={88,5, 56,5, 99,0}, cj3[3]={89,5, 87,5, 60,5}, z[3]={277,5, 221,9, 252,0};

char xm[3][9]={"Zhang","Li","Wang"}, (* p)[3];

void sort(char (*x ) [3], int a1[3], int a2[3], float a3[3], float a4[3], float a5[3], float a6[3]);

p = xm

sort(p, xh, bj, cj1, cj2, cj3, z

Devuelve 0; void sort(char (*x)[3], int a1[3], int a2[3], float a3[3], float a4[3], float a5[3], float a6[3])< / p>

{

int i, k

char t[9];

flotar u

para ( I = 0;i<2;i++)

{

if(strcmp(*(x+i),*(x+I+1))>0 )

{

strcpy(t,*(x+I));

strcpy(*(x+i),*(x+I+ 1));

strcpy(*(x+i+1), t);

k = a 1[I];

a 1[ I]= a 1 [I+1];

a 1[I+1]= k;

k = a2[I];

a2 [I]= a2 [I+1];

a2[I+1]= k;

u = a3[I];

a3[ I]= a3[ I+1];

a3[I+1]= u;

u = a4[I];

a4[I ]= a4[I +1];

a4[I+1]= u;

u = a5[I];

a5[I] = a5[I+ 1];

a5[I+1]= u;

u = a5[I];

a5[I]= a5[I+1 ];

a5[I+1]= u;

}

}

for(I = 0;i<3;i++ )

printf("%d, %d, %s, %.1f, %.1f, %.1f, %.1f\n ",

a1[i] , a2[i], *(x+i), a3[i], a4[i], a5[i], a6[I]);

}