Соединение двух массивов СИ
#include <stdio.h>
int main(){
int len1=0,len2=0,lenc=0,k=0,o=0,i=0;
printf("Input the length of the first array: ");
scanf("%d", &len1);
int c1[len1];
printf("Input the length of the second array: ");
scanf("%d", &len2);
lenc=len1+len2;
int c2[lenc];
for(i=1; i<=len1; i++){
printf("A[%d]=", i);
scanf("%d", &c1[i]);
}
printf("\n");
for(int k=1; k<=len2; k++){
printf("B[%d]=", k);
scanf("%d", &c1[k]);
}
lenc=len1+len2;
int c3[lenc];
k=1;
for(i=0; i<len1; i++){
c3[k++] = c1[i];
}
for(i=0; i<len2; i++){
c3[k++] = c2[i];
}
printf("\n");
for(i=0; i<lenc;i++){
printf("c[%d]= %d ", i,c3[i]);
}
getchar();
getchar();
}
Почему то в последнем цикле где вывожу весь получившийся массив, выводит непонятные значения всегда, а не те которые я ввёл. Буду рад если поясните что не так )
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
Во-первых, массивы нумеруются с нуля, во-вторых - в с2 никто ничего не вводит
Автор решения: Vyacheslav Potseluyko
→ Ссылка
проблем куча:
- в "си" первый элемент массива имеет нулевой индекс
- некорректно используются переменные
Рабочий прилизанный код выглядит так:
#include <stdio.h>
int main(){
int len1 = 0, len2 = 0;
printf("Input the length of the first array: ");
scanf("%i", &len1);
int c1[len1];
printf("Input the length of the second array: ");
scanf("%i", &len2);
int c2[len2];
for(int i = 0; i < len1; i++){
printf("A[%d]=", i);
scanf("%d", &c1[i]);
}
printf("\n");
for(int i = 0; i < len2; i++){
printf("B[%d]=", i);
scanf("%d", &c2[i]);
}
int len_total = len1 + len2;
int c3[len_total];
int k = 0;
for(int i = 0; i < len1; i++) {
c3[k++] = c1[i];
}
for(int i = 0; i < len2; i++) {
c3[k++] = c2[i];
}
printf("\n");
for(int i = 0; i < len_total; i++) {
printf("c[%d]=%i, ", i, c3[i]);
}
printf("\n");
}