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

Преобразование массива по условию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить содержит ли введенный текст символы, отличные от строчных букв и пробела http://www.cyberforum.ru/cpp-beginners/thread60656.html
Определит содержит ли введенный текст символы, отличные от строчных латинских букв и пробела язык С не могу понять как это считать
C++ Работа с символьным массивом А мучаюсь я с созданием символьного массива...Понятно, что через Char? а вот чего дальше с ним делать не понятно. Чем он отличается от числового массива? http://www.cyberforum.ru/cpp-beginners/thread60653.html
C++ Определить количество строк, содержащих хотя бы один нулевой элемент
Здравствуйте, дорогие форумчане. На предмете программирования задали написать программу по заданию: Дана целочисленная прямоугольная матрица. Определить: 1)количество строк, содержащих хотя...
Вычислить значение выражения C++
program Project1; {$APPTYPE CONSOLE} uses SysUtils, Windows;
C++ Создание программы с использованием математических и тригонометрических функций http://www.cyberforum.ru/cpp-beginners/thread60633.html
Нужны две небольших проги на С ++ )))) 1. Написать программу вычисления сопротивления электрической цепи, состоящей из двух параллельно соединенных сопротивлений. Введите исходные данные:...
C++ Ошибка в коде. Доброго времени суток задали нам сегодня задачу решить примерhttp://pic.ipicture.ru/uploads/091102/kKTR6dTEmX.png написал код но он не правильный.// Laboratornaja3.cpp : Defines the entry point for... подробнее

Показать сообщение отдельно
sweeney
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55

Преобразование массива по условию - C++

02.11.2009, 19:02. Просмотров 660. Ответов 4
Метки (Все метки)

Здравствуйте.

На паре программирования была сформулирована задача:

...В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1. количество элементов массива, меньших С;
2. сумму целых частей элементов массива, расположенных после последнего
отрицательного элемента.

Преобразовать массив таким образом, чтобы сначала располагались
все элементы, отличающиеся от максимального не более чем на 20%, а потом -
все остальные.


Все бы ничего, но именно преобразование массива по условию дались с проблемой. Имеется рабочий код с предположительно рабочим алгоритмом преобразования массива, но, судя по всему, программа работает неверно. Помогите пожалуйста. Программа Microsoft Visual C++ 2008

Код:

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
95
96
#include <iostream>
#include <time.h>
using namespace std;
 
void main()
{
 
    int  i,y,z, n, pos, kol, zelie[1000], sumzel,x ;
    float mas[1000], mas2[1000], mas3[1000],  c;
    
    cout << "Razmer massiva: ";
    cin >> n;
    cout <<"Vvesti chislo c: ";
    cin >>c;
 
    
    kol=0;
    sumzel=0;
    x=0;
    y=0;
 
 
    for(int i = 1; i <= n; i++)
        {
            mas2[i]=(rand()%10)*0.1;
            mas[i] = ((rand() % 100) - 30)+mas2[i];
            zelie[i]=mas[i];
            cout << mas[i] << " ";
            
        }
 
    for(int i = 1; i <= n; i++)
        {
            if (mas[i]<c) 
            { 
                kol=kol++;                //количество элементов < C
            }
            if (mas[i]<0)
            {
                pos=i;                    //номер последнего элемента массива =0
            }
            if (mas[i+1]>mas[i])
            {
                mas[0]=mas[i+1];          //наибольший элемент массива
            }
        }
    for(int i = pos+1; i <= n; i++)
    {
        sumzel=sumzel+mas[i];
    }
 
 
    for(int i = 1; i <= n; i++)         
    {
        if (mas[0]-mas[i]<=(mas[0]/100)*20)
        {
            x=x+1;                      //кол-во элементов <20% от mas[0]
        }
    }
 
 
    z=x;
    
    for(int i =1; i <= n; i++)
    {   
        if (mas[0]-mas[i]==0) 
        {
            mas3[x]=mas[i];
        }
 
        if ((mas[0]-mas[i]<=(mas[0]/100)*20)&&(mas[0]-mas[i]!=0))
        {
            y=y+1;
            mas3[y]=mas[i];
        }
        else
        {
            z=z+1;
            mas3[z]=mas[i];
        }
    }
    
printf(" kolichistvo el<c: %d; summa zelich posle posl otr el: %d\n" ,kol,sumzel);
 
cout<<"preobrazovanni masiv"<<endl;
 
    for(int i = 1; i <= n; i++)
        {
            cout << mas3[i] << " ";
        }
    
    
 
    cin.get();
    cin.get();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru