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

Подправить прогу( - C++

Восстановить пароль Регистрация
 
Adm!n
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 17
21.11.2012, 22:03     Подправить прогу( #1
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1)Кол-во положительных элементов массива
2)Сумму элементов массива, расположенных после последнего элемента, равного нулю
3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные.

Все работает,но препод докапалась до того,что когда в 3 пункте сортируется массив,то все значения выстраиваются от меньшего к большему,а должно быть так,что сначала идут значения,целая часть которых меньше 1,а потом все остальные числа в таком порядке,как были введены с клавиатуры(

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
 
using namespace std;
 
void pologit(double *a,int n,int k);            // Прототип ф-ции, вычисляющей количество положительных элементов массива
double summa(double *a,int n,int y,double sum); // Прототип ф-ции, вычисляющей сумму элементов массива, расположенных после
                                              // последнего элемента, равного нулю
void sortirovka(double *a,int n);   // Прототип ф-ции сортировки. Преобразовать массив таким образом, чтобы сначала располагались
                                              // все элементы, целая часть которых не превышает 1, а потом все остальные
 
int main()
{
    setlocale ( LC_ALL, "Russian" );
 
    int n,y=-1,k=0,j=0;
    double sum=0;
 
    cout << "Введите количество элементов массива: ";
    cin >> n;
 
    double *a = new double[n]; // Выделение памяти под массив
 
    cout << "Введите элементы массива: ";
    for (int i=0; i < n; i++) 
        cin >> a[i];
    
    cout << "Введенный массив: ";
    for (int i=0; i < n; i++)
        cout << a[i] << " ";
 
    pologit(a,n,k); // Ф-ция, вычисляющая количество положительных элементов массива
 
    cout << "Сумма эл-тов массива, располож. после посл. эл-та, равного нулю: " << summa(a,n,y,sum) << endl;
 
    cout << "Сортировка массива: ";
 
    sortirovka(a,n); // Ф-ция сортировки. Преобразовать массив таким образом, чтобы сначала располагались
                        // все элементы, целая часть которых не превышает 1, а потом все остальные
    cout << endl;
 
    
 system("pause");
 return 0;
}
 
void pologit(double *a,int n,int k) // Ф-ция, вычисляющая количество положительных элементов массива
{
    for (int i=0;i<n; i++)
        {
            if (a[i]>0)
            k++;
        }
    cout << endl;
    cout <<"Итого положительных элементов: " << k << endl;
}
 
double summa(double *a,int n,int y,double sum) // Ф-ция, вычисляющая сумму элементов массива, расположенных после
                                            // последнего элемента, равного нулю
{
    for (int i=0; i < n; i++)
    {
        if (a[i]==0)
        {
            y=i;
        }
    }
    for (int i=y; (i < n) && y!=-1; i++)
     sum+=a[i];
return sum;
}
 
void sortirovka(double *a,int n) // Ф-ция сортировки. Преобразовать массив таким образом, чтобы сначала располагались
                                           // все элементы, целая часть которых не превышает 1, а потом все остальные
{
      double x = 0.0; 
   
   for (int i = 0; i < n; i++)
    {
        for (int b = 1; b+i < n; b++)
        {
            if (abs(a[i]) > abs(a[b+i])!=0)
              {
                         x = a[i];
                         a[i] = a[b+i];
                         a[b+i] = x;
              }
        }
    }
    
    for (int i = 0; i < n; i++)
    cout << a[i]<<" ";
    cout<<endl;    
 
}
Миниатюры
Подправить прогу(  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 22:03     Подправить прогу(
Посмотрите здесь:

Немного подправить. C++
C++ Подправить задачку.
C++ Подправить стек
Подправить код C++
Подправить программу C++
C++ Подправить программу
подправить C++
подправить немного C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Adm!n
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 17
21.11.2012, 22:09  [ТС]     Подправить прогу( #2
К СКРИНУ:
т.е. должно быть не как на скрине, а так:
0 0,33 0,33 1,22 -1,65 9,81 -7,65 5,66 4,55 5,55
Yandex
Объявления
21.11.2012, 22:09     Подправить прогу(
Ответ Создать тему
Опции темы

Текущее время: 00:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru