Переписать программу с использованием функций - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
int ar[5];
void main(void)
{ clrscr();
printf("введите пять чисел");
for(int i=0;i<5;i++) scanf("%d",&ar[i]);
float Sum=ar[0];
for(i=1;i<5;i++) if(ar[i]>0) Sum=Sum+ ar[i];
for(i=0;i<5;i=i+1)printf(“%5d”, ar[I]);
printf("The sum is %f",Sum);
getch ();
}Решение задачи: «Переписать программу с использованием функций»
textual
Листинг программы
#include <iostream>
void input(float *a, size_t m);
void output(float *a, size_t m);
float sum(float *a, size_t m);
int main(void)
{
setlocale(0, "");
size_t n;
std::cout << "Введите размерность массива -> ";
std::cin >> n;
float *vector = new float[n];
input(vector, n);
output(vector, n);
sum(vector, n);
delete[] vector;
system("pause");
return 0;
}
void input(float *a, size_t m)
{
std::cout << "Введите " << m << " чисел: ";
for(size_t i = 0; i < m; ++i)
std::cin >> a[i];
}
void output(float *a, size_t m)
{
std::cout << "Состояние массива: " << std::endl;
for(size_t i = 0; i < m; ++i)
std::cout << a[i] << '\t';
std::cout << std::endl << std::endl;
}
float sum(float *a, size_t m)
{
float summ = 0;
for(size_t i = 0; i < m; ++i)
if (a[i] > 0)
summ += a[i];
std::cout << "Сумма положительных элементов массива: " << summ;
std::cout << std::endl << std::endl;
return summ;
}
Объяснение кода листинга программы
- В функции
mainсчитывается размерность массива с помощью ввода с клавиатуры и сохраняется в переменнуюnтипаsize_t. - Динамически выделяется память под массив
vectorтипаfloatразмеромnс помощью оператораnew. - Вызывается функция
input, которая считываетnчисел и сохраняет их в массивvector. - Вызывается функция
output, которая выводит состояние массиваvectorна экран. - Вызывается функция
sum, которая вычисляет сумму положительных элементов массиваvectorи выводит ее на экран. - Выделяется память под массив
vectorосвобождается с помощью оператораdelete[]. - Программа ожидает нажатия любой клавиши с помощью
system(pause). - Программа завершается с кодом 0.
В функции
inputсчитываютсяnчисел и сохраняются в массивa. В функцииoutputвыводится состояние массиваvectorна экран. В функцииsumвычисляется сумма положительных элементов массиваvectorи выводится на экран.