Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приветствую, есть проблема 
:(
    Опции темы
SIMarOK
Дата 25.10.2004, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Мне задали сделать лабу по массивам в С++, лабораторная очень простая по своеё сути, вот условие:
В массиве, содержащем не более 21 числа, подсчитать среднее арифметическое для положительных элементов. Если среднее больше заданного числа, положительные элементы исходного массива уменьшить на это число, а отрицательные - увеличить. Найти максимальный элемент полученного массива и его номер. Формат числа ±цц.ц. Результаты распечатать в виде:



Исходный массив: ……………………………………………………

Заданное число …….……..

Среднее для положительных элементов ……..

Полученный массив ……………………………………………………

Номер максимума ….


помогите плиз кто знает...в долгу не останусь:)

Пасиб:)
PM MAIL   Вверх
Step
Дата 26.10.2004, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Модератор: Название темы должно отражать ее суть!


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vaulter
Дата 26.10.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



SIMarOK
Цитата
помогите плиз кто знает..

чем помочь то?программу написать? за это деньги берут ;)


--------------------
PM MAIL WWW ICQ   Вверх
SIMarOK
Дата 26.10.2004, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Цитата(Step @ 26.10.2004, 09:03)
Модератор: Название темы должно отражать ее суть!

Сорри, не знал...исправлюсь :)
Добавлено @ 15:44
Цитата(Vaulter @ 26.10.2004, 12:28)
SIMarOK
Цитата
помогите плиз кто знает..

чем помочь то?программу написать? за это деньги берут ;)

Сколькож это стоить будет?
Это ведь даже не программа...а просто алгоритм для детей:), там ничего сложного...
Добавлено @ 15:45
помоголиб бедному студенту первого курса:(. Добрые дяденьки и тётеньки:)

Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 15:45
PM MAIL   Вверх
Step
Дата 26.10.2004, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



модуль расчета
Код

float mas[21];
//произвести заполнение
//ввести граничное число в переменную G
float sum=0;
int kol=0;
float sr;
for (int i=0;i<21;i++){
if (mas[i]>0) {sum+=mas[i];kol++}
}
sr=sum/kol;

if (sr>g){
for (int i=0;i<21;i++){
if (mas[i]>0) mas[i]-=g;
else if (mas[i]!=0) mas[i]+=g;
}
}
float max=mas[0];
kol=0;
for (int i=0;i<21;i++){
if (mas[i]>max){
max=mas[i];
kol=i;
}
}


Добавлено @ 16:09
тут можно еще долго извращаться над моим кодом, оптимизировать его... избовляться от лишних циклов, но думаю вам это не нужно


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
SIMarOK
Дата 26.10.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Сейчас попробую разобраться, спасибо за помощь:)
PM MAIL   Вверх
Step
Дата 26.10.2004, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата(SIMarOK @ 26.10.2004, 16:15)

Сейчас попробую разобраться, спасибо за помощь

если что спрашивайте, я не расписывал как ввести и вывести результат, т.к. с консолью давно не работал...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
SIMarOK
Дата 26.10.2004, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Вот что я пока дополнил, теперь осталось сделать вывод результатов с очисткой экрана:)
Код
# include <stdio.h>
# include <conio.h>
void main ()
{ float g;
float mas[21];
for ( int i=0; i<21; i++)
{
printf("Vvedite massiv\n mas[%d]=", i);
scanf("%d", &mas[i]);
}
while(1)
{
printf("Vvedite 4islo\ng=", g);
scanf("%f", &g); break;
}
float sum=0;
int kol=0;
float sr;
for ( i=0;i<21;i++){
if (mas[i]>0) {sum+=mas[i];kol++;}
}
sr=sum/kol;

if (sr>g){
for (int i=0;i<21;i++){
if (mas[i]>0) mas[i]-=g;
else if (mas[i]!=0) mas[i]+=g;
}
}
float max=mas[0];
kol=0;
for (i=0;i<21;i++){
if (mas[i]>max){
max=mas[i];
kol=i;
}
}
getch();
}




Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 16:58
PM MAIL   Вверх
SIMarOK
Дата 26.10.2004, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Вот посмотрите пожалуйста, почему то он выводит sr равное нулю, хотя поидее оно должно быть не нулем, где то ошибка...И номер максимума пишет тоже 0. И как сделать так чтобы он напечатал все значении массивов в строчку?
Код

# include <stdio.h>
# include <conio.h>
void main ()
{ float g;
float mas[21];
for ( int i=0; i<21; i++)
{
printf("Vvedite massiv\n mas[%d]=", i);
scanf("%d", &mas[i]);
}

printf("Vvedite 4islo\ng=", g);
scanf("%f", &g);


float sum;
int kol=0;
float sr;
for ( i=0;i<21;i++){
if (mas[i]>0) {sum+=mas[i];kol++;}
}
sr=sum/kol;

if (sr>g){
for (int i=0;i<21;i++){
if (mas[i]>0) mas[i]-=g;
else if (mas[i]!=0) mas[i]+=g;
}
}
float max=mas[0];
kol=0;
for (i=0;i<21;i++){
if (mas[i]>max){
max=mas[i];
kol=i;
}
clrscr();
printf("\nZagadannoe chislo g=%2.1f", g);
printf("\nSrednee dlia polojitelnix elementov: sr=%d", sr);
printf("\nPoluchenniy massiv mas[i]=%d", mas[i]);
printf("\nNomer maksimuma: max=%d", max);
getch();
}
}



Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 17:32
PM MAIL   Вверх
Step
Дата 26.10.2004, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



каретку переводить не надо...

как ты сейчас выводишь... код покажи


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
SIMarOK
Дата 26.10.2004, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Вот
Код
# include <stdio.h>
# include <conio.h>
void main ()
{ float g;
float mas[21];
for ( int i=0; i<21; i++)
{
printf("Vvedite massiv\n mas[%d]=", i);
scanf("%d", &mas[i]);
}

printf("Vvedite 4islo\ng=", g);
scanf("%f", &g);


float sum;
int kol=0;
float sr;
for ( i=0;i<21;i++){
if (mas[i]>0) {sum+=mas[i];kol++;}
}
sr=sum/kol;

if (sr>g){
for (int i=0;i<21;i++){
if (mas[i]>0) mas[i]-=g;
else if (mas[i]!=0) mas[i]+=g;
}
}
float max=mas[0];
kol=0;
for (i=0;i<21;i++){
if (mas[i]>max){
max=mas[i];
kol=i;
}
clrscr();
printf("Isxodniy massiv: ");
for (i=0; i<21; i++)
{
printf("mas[%d]=%d  ", i, mas[i]);//вот я попытася напечатать массив, но не вышло...значении массивов он не пишет
}
printf("\nZagadannoe chislo g=%2.1f", g);
printf("\nSrednee dlia polojitelnix elementov: sr=%d", sr);
printf("\nPoluchenniy massiv mas[i]=%d", mas[i]);
printf("\nNomer maksimuma: max=%d", max);
getch();
}
}


Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 17:47
PM MAIL   Вверх
Step
Дата 26.10.2004, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



float sum;
заменить
float sum=0;
внимательнее надо быть :)

а он и должен значения массива у тебя в строку гнать


for (i=0;i<21;i++){
if (mas[i]>max){
max=mas[i];
kol=i;
} - вот тут нехватает еще фигурной скобки.... а в конце проги убрать одну надо
clrscr();


блин да у тебя наверное хаос при выводе творился
Добавлено @ 17:57
и ноль у тебя потомучто scanf("%d", &mas[i]);

а нужно scanf("%f", &mas[i]);


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
SIMarOK
Дата 26.10.2004, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Вот когда я изменил фигурные скобки на местах. по твоим указаниям, ничего не изменилось:)

Что насчет значений...он всеровно почему то везде по нулям выводит...вот:
--Resize_Images_Alt_Text--

Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 18:07
PM MAIL   Вверх
Step
Дата 26.10.2004, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



и еще одна ошибка
printf("mas[%d]=%.02f ", i, mas[i]);


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
SIMarOK
Дата 26.10.2004, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Цитата(Step @ 26.10.2004, 18:05)
и еще одна ошибка
printf("mas[%d]=%.02f  ", i, mas[i]);

Во, теперь выводит, спасибо:)

Это сообщение отредактировал(а) SIMarOK - 26.10.2004, 18:12
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1281 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.