0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 15
1

Ограничить значения всех элементов, абсолютные значения которых превышают среднее

20.02.2013, 21:10. Показов 1598. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется помощь, помогите пожалуйста!)
Задача:перевести код из C++ в С и исправить ошибки, если такие имеются
Код создан по заданию: Ограничить значения всех элементов, абсолютные значения которых превышают среднее для положительных и отрицательных элементов. Размер массива определяется в начале выполнения программы, как случайное сичло в диапазоне 50 - 200. В тексте программы нельзя применять операцию индексации. Диапазон значений -100 - 100. РАЗМЕРНОСТЬ МАССИВА ЗНАЧЕНИЯ НЕ ИМЕЕТ
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
//#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "time.h"
 
using namespace std;
 
// Ограничить значения всех элементов, абсолютные значения которых превышают среднее для //// положительных и отрицательных элементов
//int _tmain(int argc, _TCHAR* argv[])
int main()
{
    int *Ar;
    int *Cr;    
    int v_min = -100, v_max = 200;
    int min = v_min;    
    int size;
    int meanPositiv=0, meanNegativ=0, countPositiv=0, countNegativ=0;
    
 
    srand(unsigned(time(NULL)));
 
    size = rand()%150+50;
    size=6;
    Ar = new int [size];
 
    for (Cr = Ar; Cr < Ar + size; Cr++){
        *Cr = rand()%v_max+v_min;       
        cout<<setw(3)<<*Cr<<' ';        
    }
 
    // считаем среднее для положительных и отрицательных
    for (Cr = Ar; Cr < Ar + size; Cr++)
    {
        if(*Cr>=0)  {meanPositiv+=*Cr; ++countPositiv; }
        else                {meanNegativ+=*Cr; ++countNegativ; }
    }
    if (countPositiv)  meanPositiv/=countPositiv;
    if (countNegativ)  meanNegativ/=countNegativ;
 
    // выбираем максимальное среднее    
    // но без точности то есть делим без остатка и правильного округления
    if(meanPositiv<(-meanNegativ)) meanPositiv=-meanNegativ;
 
    // ограничиваем согласно условию
    for (Cr = Ar; Cr < Ar + size; Cr++)
    {
        // несовсем понятно чем ограничивать
        // ограничиваем meanPositiv с учётом знака
        if(*Cr>meanPositiv)      *Cr=meanPositiv;
        if(*Cr<(-meanPositiv)) *Cr=-meanPositiv;        
    }
 
    cout<<"\nResult (modul limit: "<<meanPositiv<<"): ";
    for (Cr = Ar; Cr < Ar + size; Cr++){
        cout<<setw(3)<<*Cr<<' ';        
    }
  cout<<endl;
    system("PAUSE");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2013, 21:10
Ответы с готовыми решениями:

Во всех последовательностях чисел ограничить снизу значения тех элементов, значения которых меньше среднего
Для массива размерностью 100 элементов и диапазоном значений от 100 до -100 нужно во всех...

Ограничить значения всех элементов, абсолютные значения которых, превышают среднее для положительных и отрицательных элементов
Нуждаюсь в помощи!Нужно составить программу! Ограничить значения всех элементов, абсолютные...

Ограничить значение всех элементов, абсолютные значения которых превышают среднее для позитивных и негативных элементов
Помогите пожалуйста с лабораторной Ограничить значение всех элементов, абсолютные значения которых...

Ограничить значение всех элементов массива, абсолютные значения которых превышают средние
Огласить масив целых чисел и заполнить его случайными значениями.Размер масива 100. Диапазон...

4
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
20.02.2013, 21:33 2
поменяй cout на printf()
больше тут делать нечего
1
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 15
20.02.2013, 22:18  [ТС] 3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
поменяй cout на printf()
больше тут делать нечего
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
//#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
//int _tmain(int argc, _TCHAR* argv[])
int main()
{
    int *Ar;
    int *Cr;
    int v_min = -100, v_max = 200;
    int min = v_min;
    int size;
    int meanPositiv=0, meanNegativ=0, countPositiv=0, countNegativ=0;
 
 
    srand(unsigned(time(NULL)));
 
    size = rand()%150+50;
    size=6;
    Ar = new int [size];
 
    for (Cr = Ar; Cr < Ar + size; Cr++){
        *Cr = rand()%v_max+v_min;
        printf(setw(3)<<*Cr<<' ');
    }
 
    // считаем среднее для положительных и отрицательных
    for (Cr = Ar; Cr < Ar + size; Cr++)
    {
        if(*Cr>=0)  {meanPositiv+=*Cr; ++countPositiv; }
        else                {meanNegativ+=*Cr; ++countNegativ; }
    }
    if (countPositiv)  meanPositiv/=countPositiv;
    if (countNegativ)  meanNegativ/=countNegativ;
 
    // выбираем максимальное среднее
    // но без точности то есть делим без остатка и правильного округления
    if(meanPositiv<(-meanNegativ)) meanPositiv=-meanNegativ;
 
    // ограничиваем согласно условию
    for (Cr = Ar; Cr < Ar + size; Cr++)
    {
        // несовсем понятно чем ограничивать
        // ограничиваем meanPositiv с учётом знака
        if(*Cr>meanPositiv)      *Cr=meanPositiv;
        if(*Cr<(-meanPositiv)) *Cr=-meanPositiv;
    }
 
    printf("\nResult (modul limit: "<<meanPositiv<<"): ");
    for (Cr = Ar; Cr < Ar + size; Cr++){
        printf(setw(3)<<*Cr<<' ');
    }
  printf(endl);
    system("PAUSE");
    return 0;
}
немного подредактировав вылезают следующие ошибки:
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
20.02.2013, 22:23 4
Просто прочти, что такое printf, как ей пользоваться
а не тупо заменяй одно на другое
Это же первый урок в любом учебнике С!
1
...
1906 / 1326 / 965
Регистрация: 12.02.2013
Сообщений: 2,171
21.02.2013, 08:22 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int *Ar;
    int *Cr;
    int v_min = -100, v_max = 200;
    int size;
    int meanPositiv=0, meanNegativ=0, countPositiv=0, countNegativ=0;
 
 
    srand(time(NULL));
 
    size = rand()%150+50;
    size=6;
    Ar = (int*) malloc(sizeof(int) * size);
 
    for (Cr = Ar; Cr < Ar + size; Cr++) {
        *Cr = rand()%v_max+v_min;
        printf("%3d ", *Cr);
    }
 
    // считаем среднее для положительных и отрицательных
    for (Cr = Ar; Cr < Ar + size; Cr++) {
        if(*Cr>=0)  {meanPositiv+=*Cr; ++countPositiv; }
        else        {meanNegativ+=*Cr; ++countNegativ; }
    }
    if (countPositiv)  meanPositiv/=countPositiv;
    if (countNegativ)  meanNegativ/=countNegativ;
 
    // выбираем максимальное среднее
    // но без точности то есть делим без остатка и правильного округления
    if(meanPositiv<(-meanNegativ)) meanPositiv=-meanNegativ;
 
    // ограничиваем согласно условию
    for (Cr = Ar; Cr < Ar + size; Cr++) {
        // несовсем понятно чем ограничивать
        // ограничиваем meanPositiv с учётом знака
        if(*Cr>meanPositiv)    *Cr=meanPositiv;
        if(*Cr<(-meanPositiv)) *Cr=-meanPositiv;
    }
 
    printf("\nResult (modul limit: %d): ", meanPositiv);
    for (Cr = Ar; Cr < Ar + size; Cr++) {
        printf("%3d ", *Cr);
    }
    printf("\n");
    system("PAUSE");
    return 0;
}
0
21.02.2013, 08:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2013, 08:22
Помогаю со студенческими работами здесь

Найти среднее арифметическое тех элементов матрицы, значения которых не превышают заданную величину А
помогите решить задачу. В массиве X(n,M), найти среднее арифметическое тех элементов, значения...

Найти среднее арифметическое тех элементов массива, значения которых не превышают заданную величину А
В массиве x(n) найти среднее арифметическое тех элементов, значения которых не превышают заданную...

Вычислить среднее арифметическое тех элементов массива значения которых не превышают заданного числа
Сформировать одномерный массив a(10) из случайных чисел, принадлежащих отрезку и вычислить среднее...

Сформировать массив X из элементов массива A, значения которых не превышают среднее арифметическое массива A
Помогите с выводом массива X пожалуйста никак не получается по нормальному(( и если можно...

Ограничить снизу значения тех элементов массива, значения которых меньше среднего для последовательности
Помогите с кодом программы на С Во всех последовательностях положительных чисел ограничить...

Замена всех отрицательных элементов в массиве на абсолютные значения
Напишисать программу замены всех отрицательных элементов в массиве 4x5 заполненном с клавиатуры на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru