Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2009, 13:57   #1
progser_ua
Новичок
Джуниор
 
Регистрация: 29.01.2009
Сообщений: 2
По умолчанию Помогите поправить программу! Массивы в С++

Помогите плз, написал программу, но никак не могу доделать одну деталь.

Вот условие:
Размерность масива - 100
Диапазон значений от 100 до 100

Надо:

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

Вот текст прогаммы:

#include <iostream>
#include <ctime>
using namespace std;
int main ()
{
int mas[100];
srand (time(NULL));
int i, j;
for(i=0; i<100; i++)
{
mas[i] = rand()%201-100;
}
cout <<"\n Начальный массив";
for (j=1; j<=10; j++)
{
cout <<"\n";
for (i=1; i<=10; i++)
{
cout << mas[i*j-1] << " ";
}
}
int sz;// sz - средние значение, sum - сумма, quantity - количество элементов при вычислении среднего значения
int sum = 0;
int quantity = 0;

for (i=0; i<100; i++)
{
if (mas[i]>0)
{
sum = mas[i];
quantity++;
}
}
sz = sum/quantity;
for (i=0; i<100; i++)
{
if (mas[i]<0)
mas[i] = sz;
}

cout <<"\n Конечный массив";
for (int j=1; j<=10; j++)
{
cout << "\n";
for(int i=1;i<=10;i++)
{
cout << mas[i*j-1] << " ";
}
}
cin.get ();
cin.get ();
return 0;
}

Все работает, только при вычислении среднего значения программа складывает все элементы массива, а должна складывать только положительные. Что нужно исправить подскажите пожалуйста. Буду очень признателен)
progser_ua вне форума Ответить с цитированием
Старый 03.02.2009, 14:07   #2
alexov
Пользователь
 
Регистрация: 31.10.2008
Сообщений: 61
По умолчанию

Пример!
Код:
#include <iostream>
#include <time.h>
using namespace std;

int main()
{
	int sum=0;
	int b=0, k;
const int n=10;
int a[n];
srand(time_t(0));
for(int i=0; i<n; i++)
cin>>a[i];
for(int i=0; i<n; i++)
if(a[i]>0)
{
sum+=a[i];
b++;
}
k=sum/b;
for(int i=0; i<n; i++)
if(a[i]<0)
a[i]=k;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
system("pause");
}
!Help Win Api!
alexov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с выводом данных из таблицы. помогите поправить france@ PHP 4 07.01.2009 12:46
помогите поправить запрос на выборку в дельфи Барби Помощь студентам 1 13.10.2008 11:35
Помогите поправить код SANTA_KLAUD Общие вопросы Delphi 5 30.05.2008 09:01
помогите поправить! koyot Работа с сетью в Delphi 4 13.02.2008 18:46