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

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 20:44     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #1
Заданный массив из 10 элементов. Массив Вы можем вводить одним из 2 способов:
• с клавиатуры с помощью cin);
• генерируя случайным образом.

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 20:44     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов.
Посмотрите здесь:

C++ Заменить в массиве все отрицательные элементы средним арифметическим значением всех положительных, вывести оба массива
Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов C++
C++ В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
C++ В массиве каждый элемент, равный нулю, заменить средним арифметическим всех элементов
C++ Все элементы, кроме первого, заменить средним арифметическим всех предыдущих
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
26.10.2010, 21:16     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #2
Barca, подпрограмма с рандомом...

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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
int main()
{
int i,k=0;
float sreda,A[10],S=0;
printf("MASSIV:\n");
for (i=0;i<10;i++)
{
rand();
A[i]=(int)(rand()%10-5);
printf("%1.1f\t",A[i]);
}
for (i=0;i<10;i++)
if (A[i]>0) {S+=A[i]; k++;}
sreda=fabs(S/k);
for (i=0;i<10;i++)
if (A[i]<0) A[i]=sreda;
printf("\n");
printf("NEW MASSIV:\n");
for (i=0;i<10;i++)
printf("%1.1f\t",A[i]);
getch();
return 0;
}
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 21:18  [ТС]     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #3
а можна как то легче сделать без всяких там printf а через cin или cout...без rand?
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
26.10.2010, 21:24     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #4
Разумеется

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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
int i,k=0;
float sreda,A[10],S=0;
cout <<"MASSIV:"<<endl;
for (i=0;i<10;i++)
{cout<<i+1<<") = "; cin>>A[i];}
for (i=0;i<10;i++)
if (A[i]>0) {S+=A[i]; k++;}
sreda=fabs(S/k);
for (i=0;i<10;i++)
if (A[i]<0) A[i]=sreda;
cout<< endl;
cout<<"NEW MASSIV:"<<endl;
for (i=0;i<10;i++)
cout<<A[i]<<endl;
getch();
return 0;
}
NotMyLogin
5 / 4 / 1
Регистрация: 03.08.2010
Сообщений: 5
26.10.2010, 21:27     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #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
#include "stdafx.h"
#include <iostream>
#include <time.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    int i,num = 0,arr[10];
    int max = 100,min = -100;
    srand(time(NULL));
    cout << "Начальный массив:" << endl;
    for (i=0;i<10;i++){
    arr[i] = min + rand()%(max - min + 1);
    num += arr[i];
    cout << arr[i] << " ";
    }
    cout << endl;
    num /= 10;
    cout << "Среднее арифметическое = " << num << endl;
    cout << "Конечный массив:" << endl;
    for (i=0;i<10;i++){
    if (arr[i] < 0)arr[i] = num;
    cout << arr[i] << " ";
    }
    cout << endl;
    system("PAUSE");
    return 0;
}
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 21:39  [ТС]     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #6
Цитата Сообщение от Василий-Робот Посмотреть сообщение
Разумеется

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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
int i,k=0;
float sreda,A[10],S=0;
cout <<"MASSIV:"<<endl;
for (i=0;i<10;i++)
{cout<<i+1<<") = "; cin>>A[i];}
for (i=0;i<10;i++)
if (A[i]>0) {S+=A[i]; k++;}
sreda=fabs(S/k);
for (i=0;i<10;i++)
if (A[i]<0) A[i]=sreda;
cout<< endl;
cout<<"NEW MASSIV:"<<endl;
for (i=0;i<10;i++)
cout<<A[i]<<endl;
getch();
return 0;
}
можна еще коменти к строчкам?
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
26.10.2010, 21:44     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #7
угу

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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
int i,k=0;
float sreda,A[10],S=0;
cout <<"MASSIV:"<<endl;
for (i=0;i<10;i++) // ввод массива ручками
{cout<<i+1<<") = "; cin>>A[i];}
for (i=0;i<10;i++) // приходимся по всему массиву и если видим, что в нем есть число > 0
// плюсуем к сумме положительных и введем счетчик "к"
if (A[i]>0) {S+=A[i]; k++;}
sreda=fabs(S/k);// находим среднее арифметическое
for (i=0;i<10;i++) // проходимся по массиву и если видим, что есть число < 0, заменяем сред. арифметическим вот так:
if (A[i]<0) A[i]=sreda;
cout<< endl;
cout<<"NEW MASSIV:"<<endl; // вывод нового массива 
for (i=0;i<10;i++)
cout<<A[i]<<endl;
getch();
return 0;
}
усе)
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 21:46  [ТС]     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #8
Спасибо!!!
NiTan
26.10.2010, 21:53
  #9

Не по теме:

Василий-Робот, потом вас попросят и отъучится за него/нее...

yariknarik
0 / 3 / 0
Регистрация: 02.06.2010
Сообщений: 36
26.10.2010, 22:59     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #10
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
#include <iostream.h>
int const n=10;
void main()
{
  int a[n];
  int S,k;
  for(int i=0; i<10; i++)
    {
       cin>>a[i];
          if (a[i]>0)
           {
             S=S+a[i];
             k++;
           }     
    }
   S=S\k;
   for (i=0; i<n; i++)
     {
        if(a[i]<0)
        {
          a[i]=S;
          cout>>a[i]>>" "; 
        }
     }
}
Добавлено через 18 минут
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
#include <iostream.h>
#include <math.h>
  int const n=10;
void main ()
  int a[i], S=0, k=0;
  for (int i=0; i<n; i++)
   {
     cin>>a[i];
     if(a[i]>0)
       {
         S=S+a[i];
         k++;
       }
   }
 S=S\k;
   for (int i=0; i<n; i++)
   {
     if(a[i]<0)
       {
         a[i]=S;
         cout<<a[i]<<" "; 
       }
   }
}
самый простой способ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 23:00     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов.
Еще ссылки по теме:

Заменить в каждом массиве максимальный элемент средним арифметическим положительных элементов (если оно существует) соответствующего массива C++
C++ Заменить нечетные элементы вектора Т средним арифметическим элементов, которые делятся на 5 с остатком 3
C++ В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением

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

Или воспользуйтесь поиском по форуму:
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 23:00  [ТС]     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. #11
Спасибо!!!=)))
Yandex
Объявления
26.10.2010, 23:00     Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов.
Ответ Создать тему
Опции темы

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