Un problema de programación de variables de puntero en lenguaje C, ¿por favor dame una respuesta?
#include
void merge(int* a, int* b, int* c, int length) {
// dos punteros, que apuntan a las posiciones actuales de la matriz a y la matriz b respectivamente
int* pa = a;
int* pb = b;
// Combinar los dos Los elementos de las matrices se colocan en la matriz c uno por uno
mientras (pa - a < longitud && pb - b < longitud) {
if (*pa < * pb) { p>
*c = *pa;
pa++;
} más {
*c = *pb; p>
pb++;
}
c++;
}
// Coloque los elementos restantes en la matriz c
mientras (pa - a < longitud) {
*c = *pa;
pa++;
c++;
}
mientras (pb - b < longitud) {
*c = *pb;
pb++;
c++ ;
}
}
int main() {
int a[10] = {3, 7, 8, 11 , 15, 18, 23, 45, 67, 90};
int b[10] = {1, 4, 9, 12, 20, 25, 29, 33, 56, 72};
int c[20];
// Clasificación de burbujas
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9 - i; j++) {
if (a[j] > a[j + 1]) {
int temp = a [j];
a[j] = a[j + 1];
a[j + 1] = temporal;
}
if (b[j] > b[j + 1]) {
int temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
fusionar(a, b, c, 10);
for (int i = 0; i < 20; i++) {
printf("%d ", c[i] ); p>
}
printf("\n");
devuelve 0;
}
En este programa, primero ordenamos las dos matrices usando el algoritmo de clasificación de burbujas, luego usamos la función de combinación para fusionar las dos matrices en una sola y finalmente generamos la matriz fusionada.