#include <stdio.h>
void cat_data(int *data1, int *data2, int len2) {
int *p1 = data1,count = 0;
for (int i = 0; i < 7; i++) {
if (*(p1 + i) != 0) {
count++;
}
}
int remaining = 7 - count;
int copy_len = (remaining < len2);
int *insert_pos = data1 + count;
int *p2 = data2;
for (int i = 0; i < copy_len; i++) {
*(insert_pos + i) = *(p2 + i);
}
}
int main() {
int data1[7] = {10, 20, 30, 0, 0, 0, 0};
int data2[5] = {40, 50, 60, 70, 80};
int len2 = 5;
cat_data(data1, data2, len2);
int *p = data1;
for (int i = 0; i < 7; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgY2F0X2RhdGEoaW50ICpkYXRhMSwgaW50ICpkYXRhMiwgaW50IGxlbjIpIHsKICAgIGludCAqcDEgPSBkYXRhMSxjb3VudCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDc7IGkrKykgewogICAgICAgIGlmICgqKHAxICsgaSkgIT0gMCkgewogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgIH0KICAgIGludCByZW1haW5pbmcgPSA3IC0gY291bnQ7CiAgICBpbnQgY29weV9sZW4gPSAocmVtYWluaW5nIDwgbGVuMik7CiAgICBpbnQgKmluc2VydF9wb3MgPSBkYXRhMSArIGNvdW50OwogICAgaW50ICpwMiA9IGRhdGEyOwoKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3B5X2xlbjsgaSsrKSB7CiAgICAgICAgKihpbnNlcnRfcG9zICsgaSkgPSAqKHAyICsgaSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50IGRhdGExWzddID0gezEwLCAyMCwgMzAsIDAsIDAsIDAsIDB9OwogICAgaW50IGRhdGEyWzVdID0gezQwLCA1MCwgNjAsIDcwLCA4MH07CgogICAgaW50IGxlbjIgPSA1OwoKICAgCiAgICBjYXRfZGF0YShkYXRhMSwgZGF0YTIsIGxlbjIpOwoKICAgCiAgICBwcmludGYoIumAo+e1kOW+jOOBrmRhdGExOiAiKTsKICAgIGludCAqcCA9IGRhdGExOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCA3OyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsICoocCArIGkpKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICByZXR1cm4gMDsKfQo=