Другие языки программирования и технологии
Помогите написать программу на Си с помощью ФУНКЦИЙ.
Ввод заданного количества чисел с клавиатуры. Разделить введенную последовательностьна два массива меньшего размера. В первом массиве будут содержаться числа, превышающие среднее арифметическое всей числовой последовательности, остальныечисла должны быть записаны во втором массиве. Результаты должны быть выведенына экран
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#define BUFFER 100
double average(int*, size_t);
size_t input(int*);
size_t larger(int*, int*, size_t, double);
size_t other(int*, int*, size_t, double);
void print(int*, size_t);
void stop();
int main() {
size_t size, i, j;
double avg;
int sequence[BUFFER], first[BUFFER], second[BUFFER];
size = input(sequence);
avg = average(sequence, size);
i = larger(first, sequence, size, avg);
j = other(second, sequence, size, avg);
print(sequence, size);
print(first, i);
print(second, j);
stop();
return 0;
}
void print(int* arr, size_t size) {
size_t i;
for (i = 0; i < size; ++i) printf(" %i ", arr[i]);
printf("\n");
}
size_t larger(int* dest, int* src, size_t size, double avg) {
size_t i, j;
for (i = j = 0; i < size; ++i) if (src[i] > avg) dest[j++] = src[i];
return j;
}
size_t other(int* dest, int* src, size_t size, double avg) {
size_t i, j;
for (i = j = 0; i < size; ++i) if (src[i] <= avg) dest[j++] = src[i];
return j;
}
size_t input(int* arr) {
size_t size, i;
setlocale(LC_CTYPE, "Russian_Russia.1251");
do {
printf("Введите размер последовательности: ");
scanf_s("%u", &size);
if (!size) {
printf("\aРазмер не может быть нулевым! \n");
continue;
}
if (size > BUFFER) {
size = BUFFER;
printf("\aПопытка превышения размера буфера! \nРазмер массива равен буферу. \n");
}
} while (0);
for (i = 0; i < size; ++i) {
printf("Введите %u-ый элемент последовательности: ", i + 1);
scanf_s("%i", &arr[i]);
}
system("cls");
return size;
}
double average(int* arr, size_t size) {
double sum = 0;
size_t i;
for (i = 0; i < size; ++i) sum += arr[i];
return sum / size;
}
void stop() {
fflush(stdin);
getchar();
}
P.S. Переделать самой было слабо?
#include <locale.h>
#include <stdlib.h>
#define BUFFER 100
double average(int*, size_t);
size_t input(int*);
size_t larger(int*, int*, size_t, double);
size_t other(int*, int*, size_t, double);
void print(int*, size_t);
void stop();
int main() {
size_t size, i, j;
double avg;
int sequence[BUFFER], first[BUFFER], second[BUFFER];
size = input(sequence);
avg = average(sequence, size);
i = larger(first, sequence, size, avg);
j = other(second, sequence, size, avg);
print(sequence, size);
print(first, i);
print(second, j);
stop();
return 0;
}
void print(int* arr, size_t size) {
size_t i;
for (i = 0; i < size; ++i) printf(" %i ", arr[i]);
printf("\n");
}
size_t larger(int* dest, int* src, size_t size, double avg) {
size_t i, j;
for (i = j = 0; i < size; ++i) if (src[i] > avg) dest[j++] = src[i];
return j;
}
size_t other(int* dest, int* src, size_t size, double avg) {
size_t i, j;
for (i = j = 0; i < size; ++i) if (src[i] <= avg) dest[j++] = src[i];
return j;
}
size_t input(int* arr) {
size_t size, i;
setlocale(LC_CTYPE, "Russian_Russia.1251");
do {
printf("Введите размер последовательности: ");
scanf_s("%u", &size);
if (!size) {
printf("\aРазмер не может быть нулевым! \n");
continue;
}
if (size > BUFFER) {
size = BUFFER;
printf("\aПопытка превышения размера буфера! \nРазмер массива равен буферу. \n");
}
} while (0);
for (i = 0; i < size; ++i) {
printf("Введите %u-ый элемент последовательности: ", i + 1);
scanf_s("%i", &arr[i]);
}
system("cls");
return size;
}
double average(int* arr, size_t size) {
double sum = 0;
size_t i;
for (i = 0; i < size; ++i) sum += arr[i];
return sum / size;
}
void stop() {
fflush(stdin);
getchar();
}
P.S. Переделать самой было слабо?
Вот накидал. http://pastebin.com/AnjX2m1X
Похожие вопросы
- Помогите написать программу на Си
- помогите написать программу на Си
- Помогите написать программу на c++ С использованием функций
- помогите написать программу на Си
- помогите написать программу на си
- Помогите написать программу в СИ. буду очень благодарин
- помогите написать программу в Си
- Помогите написать программу на Си.
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
- Помогите написать программу на СИ++.Определить попадает ли точку в заштрихованную область