Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dasha46
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 28
#1

Оформить каждый пункт задания в виде функции (обработка массивов) - C++

28.06.2013, 23:36. Просмотров 505. Ответов 5
Метки нет (Все метки)

Необходимо оформить каждый пункт задания в виде функции. Все необходимые данные должны быть переданы в виде параметров, использование глобальных переменных в функциях не допускается. Вот задание:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) количество элементов массива , равных 0;
2) сумму элементов массива, расположенных после минимального элемента.
Упорядочить элементы массива по возрастанию модулей элементов.
И вот то, что получилось, но не компиллирует:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <math.h>
#include<conio.h>
using namespace std;
 void nul(float *a, int n);
void summa(float *a,int n);
float modul(float a,float n);
int main()
{
       setlocale(LC_ALL,"Russian");   
       const int n=5; 
   float a[n];
   cout<<"Вывод элементов массива"<<"\n";
   //Формирование массива из вещественных чисел
   for(int i = 1; i <= n; i++)
   {
           cout<<"a["<<i<<"]=";cin>>a[i] ;     
}
   cout<<"Сумма элементов равных 0 "<<"\n";
   nul(a,n);
   cout<<"Сумма элементов после минимального ";
   summa(a,n); 
   getch();
}
 
 void nul(float *a, int n)
{
 
   //Вычислить количество элементов массива, равных нулю.
    
    int count=0;
    for (int i=0; i<n; i++){
        if (a[i]==0) count++; 
    }}
   void summa(float *a,int n)
   {
    //Вычислить сумму элементов массива, расположенных после минимального элемента.
       
   int sum=0;
  int  min=0;
    for (int i=1; i<n; i++)
    { if( a[i]<a[min]) min=i;};
    for (int i=min+1; i<n; i++)
    { sum+=a[i];}}
 float modul(float a,float n)
 {
    //Упорядочить элементы массива по возрастанию его модулей.
    
    for (int i=0; i<n-1; i++)
    
     {  int indmin=i;
    int i;
        for (int j=i+1; j<n; j++)
            if (abs( a[j])<abs(a[indmin])) indmin=j;
      int temp=a[i];
        a[i]= a[ indmin];
       a[indmin]=temp;
    }
    for (int i=0; i<n; i++)
    {printf("   ",a[i]);}
    ;}
Помогите пожалуйста, ничего в голову уже не лезет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 23:36     Оформить каждый пункт задания в виде функции (обработка массивов)
Посмотрите здесь:

C++ Оформить в виде функции
Используя текст программы оформить каждый пункт задания в виде функции C++
C++ Оформить каждый пункт задания в виде функции
C++ Оформить каждый пункт задания в виде функции
C++ Оформить в виде функции
C++ Оформить в виде функции
Оформить в виде функции C++
C++ Оформить программу в виде функций обработки массивов (ввод, заполнение, вывод, упорядочение и т.п.)
Оформить обработку одномерного и двумерного массивов в виде функции C++
Оформить обработку в виде функции C++
Оформить решение в виде функции C++
Оформить каждый пункт задания в виде функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doctor_
234 / 234 / 71
Регистрация: 03.02.2011
Сообщений: 1,415
28.06.2013, 23:53     Оформить каждый пункт задания в виде функции (обработка массивов) #2
Я ваш код вообще прочитать не могу, + если я не ошибаюсь это не С++, это С. Я сделал на С++, так как категория С++.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
using namespace std;
 
void nul(int vec[], const int size);
void sum_after_min(int vec[], const int size);
void sort(int vec[], const int size); 
 
int main() {
    srand(time(NULL));
    int vec[N];
    for(int i=0; i<N; i++) {
            vec[i] = 5 - rand()%10;
            cout << vec[i] << "   ";
    }
    nul(vec,N);
    sum_after_min(vec,N);
    sort(vec,N);
    getche();
}
 
void nul(int vec[], const int size) {
     int count = 0;
     for(int i=0; i<size; i++) {
             if(vec[i] == 0) count++;
     }
     cout << endl << "Count of null elements: " << count << endl;
}
 
void sum_after_min(int vec[], const int size) {
     int minIndex = 0, min = vec[0], sum = 0;
     for(int i=0; i<size; i++) {
             if(vec[i] < min) {
                       min = vec[i];
                       minIndex = i;
             }
     }
     for(int i=minIndex+1; i<size; i++) {
             sum += vec[i];
     }
     cout << endl << "Sum of elements after minimal element, where minimal element = " << min << ", and sum = " << sum << endl;
}
 
void sort(int vec[], const int size) {
     int temp = 0;
     for(int i=0; i<size; i++) {
             vec[i] = abs(vec[i]);
     }
     for(int i=0; i<size-1; i++) {
             for(int j=0; j<size-1; j++) {
                     if(vec[j+1] < vec[j]) {
                                 temp = vec[j+1]; 
                                 vec[j+1] = vec[j];
                                 vec[j] = temp;                                
                     }
             }
     }
     cout << endl << "Sorted vector:" << endl;
     for(int i=0; i<size; i++) {
             cout << vec[i] << "   ";
     }
}
UnsKneD
алкокодер
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
28.06.2013, 23:58     Оформить каждый пункт задания в виде функции (обработка массивов) #3
Цитата Сообщение от Doctor_ Посмотреть сообщение
если я не ошибаюсь это не С++, это С
Ошибаешься.
Цитата Сообщение от dasha46 Посмотреть сообщение
for (int i=0; i<n-1; i++)
Цитата Сообщение от dasha46 Посмотреть сообщение
cout<<"Сумма элементов после минимального ";
Doctor_
234 / 234 / 71
Регистрация: 03.02.2011
Сообщений: 1,415
28.06.2013, 23:59     Оформить каждый пункт задания в виде функции (обработка массивов) #4
Цитата Сообщение от UnsKneD Посмотреть сообщение
Ошибаешься.
Да, согласен, хотя там и cout и printf
UnsKneD
алкокодер
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
29.06.2013, 00:01     Оформить каждый пункт задания в виде функции (обработка массивов) #5
@Doctor_, вывод не главное, причём printf потребляет меньше памяти.
Croessmah
29.06.2013, 08:44     Оформить каждый пункт задания в виде функции (обработка массивов)
  #6

Не по теме:

Цитата Сообщение от UnsKneD Посмотреть сообщение
причём printf потребляет меньше памяти.
главный аргумент в студию

Yandex
Объявления
29.06.2013, 08:44     Оформить каждый пункт задания в виде функции (обработка массивов)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru