Дано целочисленный массив A размера N. Переписать в новый
целочисленный массив B все четные числа из исходного массива (в том же
порядке) и вывести размер полученного массива B и его содержимое
C/C++
Помогите написать програму .Си!!!
#include <stdlib.h>
#include <stdbool.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
void fill(int* box, size_t n) {
size_t i;
srand((unsigned)time(NULL));
for (i = 0; i < n; ++i) box[i] = RAND(10, 100);
}
void show(int* box, size_t n, int w) {
size_t i;
for (i = 0; i < n; ++i) printf("%*i", w, box[i]);
puts("");
}
size_t count_even(int* box, size_t n) {
size_t i, count = 0U;
for (i = 0; i < n; ++i) if (~box[i] & 1) ++count;
return count;
}
void copy_if_even(int* dest, int* src, size_t n) {
size_t i, j = 0U;
for (i = 0; i < n; ++i) if (~src[i] & 1) dest[j++] = src[i];
}
int main() {
const char* err = "Not enough memory!";
int* a = NULL;
int* b = NULL;
size_t na, nb;
int w = 4;
printf("n: ");
scanf_s("%u", &na);
a = (int*)malloc(na * sizeof(int));
if (a != NULL) {
fill(a, na);
show(a, na, w);
nb = count_even(a, na);
b = (int*)malloc(nb * sizeof(int));
if (b != NULL) {
copy_if_even(b, a, na);
show(b, nb, w);
free(b);
} else {
puts(err);
}
free(a);
} else {
puts(err);
}
system("pause > nul");
}
#include <stdbool.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
void fill(int* box, size_t n) {
size_t i;
srand((unsigned)time(NULL));
for (i = 0; i < n; ++i) box[i] = RAND(10, 100);
}
void show(int* box, size_t n, int w) {
size_t i;
for (i = 0; i < n; ++i) printf("%*i", w, box[i]);
puts("");
}
size_t count_even(int* box, size_t n) {
size_t i, count = 0U;
for (i = 0; i < n; ++i) if (~box[i] & 1) ++count;
return count;
}
void copy_if_even(int* dest, int* src, size_t n) {
size_t i, j = 0U;
for (i = 0; i < n; ++i) if (~src[i] & 1) dest[j++] = src[i];
}
int main() {
const char* err = "Not enough memory!";
int* a = NULL;
int* b = NULL;
size_t na, nb;
int w = 4;
printf("n: ");
scanf_s("%u", &na);
a = (int*)malloc(na * sizeof(int));
if (a != NULL) {
fill(a, na);
show(a, na, w);
nb = count_even(a, na);
b = (int*)malloc(nb * sizeof(int));
if (b != NULL) {
copy_if_even(b, a, na);
show(b, nb, w);
free(b);
} else {
puts(err);
}
free(a);
} else {
puts(err);
}
system("pause > nul");
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
const int N = 20;
int new_size = 0;
int A[N], B[N];
srand(time(NULL));
for(int x = 0; x < N; x++)
{
A[x] = rand() % 31;
printf("%d ", A[x]);
if(x % 2 == 1) B[new_size++] = A[x];
}
printf("\n\n");
printf("Размер массива B = %d.\n", new_size);
for(int x = 0; x < new_size; x++)
printf("%d ", B[x]);
printf("\n");
return 0;
}
#include <stdlib.h>
#include <time.h>
int main()
{
const int N = 20;
int new_size = 0;
int A[N], B[N];
srand(time(NULL));
for(int x = 0; x < N; x++)
{
A[x] = rand() % 31;
printf("%d ", A[x]);
if(x % 2 == 1) B[new_size++] = A[x];
}
printf("\n\n");
printf("Размер массива B = %d.\n", new_size);
for(int x = 0; x < new_size; x++)
printf("%d ", B[x]);
printf("\n");
return 0;
}
Похожие вопросы
- Язык Си.помогите написать формулу пожалуйста
- Помогите написать программу на СИ
- На каком языке программирования написан C (Си)?
- Помогите написать программу на языке Си
- Помогите написать код на Си, по теме "строки".
- Помогите написать программу на си
- Помогите составить програму на с++
- Помогите написать программу на С
- Помогите написать программу на C++
- Помогите написать программу на с++