Сделать задачу с использованием функции - C++ - C (СИ)
Формулировка задачи:
Есть готовая программа(Сам делал, поэтому если там что-то через одно место то но удивляйтесь). Нужно переделать ее с использованием функции. Функций должно быть несколько, поэтому поставлю коменты, где они должны быть.
#include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> int main() { clrscr(); const n=10; int mas[n]={1,4,1,-34,3,1,45,-32,44,10},mass[n]; int sum=0,sum_nep=0,f,l,i,j,buf; //Функция на поиск сумы непарных элементов массива. printf("pochatkovuy masuv: "); for(i=0;i<n;i++) { if (mas[i]%2) {sum_nep+=mas[i];} printf(" %i ",mas[i]); } //Функция на поиск суммы между первым и последним отрицательным числом. for(f=0;f<n;f++) {if(mas[f]<0){break;}} for(l=n-1;l>f;l--) {if(mas[l]<0){break;}} for(i=f+1;i<l;i++) {sum+=mas[i];} printf("\nzminenuy masuv: "); //Функция сортировки и замены некоторых элементов на 0 for(i=0;i<n;i++) {if(abs(mas[i])>1) {mas[i]=0;}} for(j=0;j<n;j++){ for(i=0;i<n-1;i++){ if(mas[i]<mas[i+1]){ buf=mas[i]; mas[i]=mas[i+1]; mas[i+1]=buf; } } } //Вывод полученной информации происходит внутри соответствующей функции //Вывод начального и конечного массива также должен быть внутри функции for(i=0;i<n;i++){ printf(" %i ",mas[i]);} printf("\nSuma mig 1i ostanim videmnum =%i",sum); printf("\nSuma neparnux =%i",sum_nep); getch(); return 0; }
Решение задачи: «Сделать задачу с использованием функции - C++»
textual
Листинг программы
#include <stdio.h> #include <math.h> //прототипы функций int neParFunc(int [],int n); int funcSum(int [],int n); void funcZam(int [], int n); void result(int [], int, int, int); int main() { int const n=10; int mas[n]={1,4,1,-34,3,1,45,-32,44,10}; int sum=0,sum_nep=0,i; printf("Начальный массив: \n"); for (i =0; i<10; i++) printf("%2d ", mas[i]); //Функция на поиск сумы непарных элементов массива. sum_nep=neParFunc(mas, n); ////Функция на поиск и суму первого и отрицательного числа sum=funcSum(mas, n); //Функция сортировки и замены некоторых элементов на 0 //как я понял меняются елементы которые больше 0 по модулю и затем массив сортируется но тогда почти все заменяется на ноль если что обьясни задание - исправлю funcZam(mas, n); result(mas, sum_nep, sum, n); printf("\n\n"); return 0; } //функция для поиска и суммирования непрных чисел int neParFunc(int mas[],int n) { int s=0; printf("\nНепарные числа в массиве: \n"); for(int i=0; i<n; i++) if(mas[i]%2!=0) //проверка на непарность { s+=mas[i]; printf("%2d ", mas[i]); } printf("\n"); return s;//возврат значение в соответствующею пременную } //сделал два цикла на случай если будет введеть другой массив и отрицательных чисел будет не два int funcSum(int mas[],int n) { int s=0; //поиск первого отрицательно числа for (int i=0; i<n; i++) if (mas[i]<0) { s+=mas[i]; printf("\nПервое отрицательное число: %d", s); break; } //поиск второго отрицательного числа с конца массива for (int i=n; i>=0; --i) { if (mas[i]<0) { s+=mas[i]; printf("\nВторое отрицательное число: %d", mas[i]); break; } } return s;//возврат значение } void funcZam(int mas[],int n) { void sort(int mas[], int n);//прототип функции внутри функции for (int i=0; i<n; i++) if (abs(mas[i])>1) mas[i]=0; sort(mas, n);//вызов функции соортировки } //вывод результатов void result(int mas[],int sum_nep,int sum,int n) { printf("\nСума непарных элементов массива: %d", sum_nep); printf("\nСума отрицательных элементов массива: %d", sum); printf("\nМассив после подстановки 0: ");//вывод масива for (int i=0; i<n; i++) printf("%2d ", mas[i]); } //сортировка массива после подставки нулей void sort(int mas[], int n) { int buf=0; for(int j=0;j<n;j++) { for(int i=0;i<n-1;i++) { if(mas[i] < mas[i+1]) { buf=mas[i]; mas[i]=mas[i+1]; mas[i+1]=buf; } } } }
Объяснение кода листинга программы
- Объявлены прототипы функций:
neParFunc
,funcSum
,funcZam
,result
. - В функции
main
объявлен массивmas
размером 10 и инициализирован значениями 1, 4, 1, -34, 3, 1, 45, -32, 44, 10. - В функции
main
вычислены и выведены начальные значения суммы непарных элементовsum_nep
, суммы отрицательных элементовsum
, а также значенияn
. - В функции
main
вычислены и выведены непарные числа массиваmas
. - В функции
main
вычислены и выведены первое и второе отрицательные числа массиваmas
. - В функции
main
выполнена функцияfuncZam
, которая заменяет элементы массиваmas
равные по модулю больше 1 на 0, а затем сортирует массив. - В функции
main
выполнена функцияresult
, которая выводит значения суммы непарных элементовsum_nep
, суммы отрицательных элементовsum
, а также выводит отсортированный массивmas
. - В функции
main
выполнена функцияsort
, которая сортирует массивmas
по возрастанию. - В функции
main
выполнена функцияsort
для сортировки массиваmas
. - В функции
main
выполнена функцияresult
, которая выводит отсортированный массивmas
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д