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

задачка (сам уже весь запутался нафиг) - C++

Восстановить пароль Регистрация
 
ASky
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 5
28.10.2012, 09:03     задачка (сам уже весь запутался нафиг) #1
в одномерном массиве состоящим из n вещественных элементов, вычислить:
1) количество элементов меньших С
2) сумму целых частей элементов массива, рассположенных после последнего отрицательного элемента
преобразовать массив таким образом чтобы сначала располагались все элементы, отличающиеся от максимального элемента не более чем на 20%, а потом все остальные.


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


# include <stdio.h>
# include <iostream.h>
# include <conio.h>
# include <math.h>
# include <stdlib.h>
int main()
{
clrscr ();
randomize ();
float *q,*b,w,e,c,i,n,max,z;
z=0;
cout <<"vvedi koli4estvo 4isel massiva" "\n";
cin >>n;
q=new float[n];
b=new float[n];
cout <<"vvedite c" "\n";
cin >>c;
for (i=0; i<=n; i++)
{
q[i]=random(4000)-1000; cout <<"q["<<i<<"]="<<q[i]<<"\n";
}
cout <<"---------------------------------------------------------"<<"\n";
for (i=0; i<n; i++)
{
if (q[i]<c)
z=z+1;
cout <<"q1["<<i<<"]="<<q[i]<<"\n";
}
cout <<"koli4estvo elementov menishih c="<<z<<"\n";
w=0;
i=n;
while (q[i]>0)
{
w=q[i]+w;
i--;
}
cout <<"summa="<<w<<"\n";
cout <<"---------------------------------------------------------"<<"\n";
max=0;
for (i=0; i<=n; i++)
{
if (max<q[i])
max=q[i]; cout <<"q["<<i<<"]="<<q[i]<<"\n";
}
cout <<"max="<<max<<"\n";
for (i=0; i<=n; i++)
{
if (q[i]-q[i]/5>max)
b[i]=q[i];
cout <<"b["<<i<<"]="<<b[i]<<"\n";
}
getch ();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 09:03     задачка (сам уже весь запутался нафиг)
Посмотрите здесь:

Запутался с циклами C++
C++ Массив(запутался)
запутался с length C++
запутался со списком C++
проверьте, кажется сам нашёл ошибку уже C++
C++ Запутался с итераторами
C++ Текстовой файл с уже введенным текстом зашифровать и вывести уже зашифрованный
Запутался в цикле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
28.10.2012, 10:35     задачка (сам уже весь запутался нафиг) #2
в общем то все в порядке кроме последнего. Во-первых я вам советую все задания сделать как отдельные функции, будет проще просматривать код, а по последнему заданию лучше создать еще один массив такой же размерности. Далее в цикле просмотреть массив полностью на как раз элементы отличающиеся не более че мна 20% (тут опять же лучше брать модуль от разницы а не просто
Цитата Сообщение от ASky Посмотреть сообщение
C++
1
if (q[i]-q[i]/5>max)
т.е.
C++
1
if (abs(q[i]-q[i]/5)>max)
записать все индексы и их количество в отдельный массив и переменную (пусть это будет buf[] и n1)
сделать функцию проверки которая определяет лежит индекс i в массиве индексов buf
далее таким образом сделать запись
C++
1
2
3
4
5
6
7
j=0;
for(int i=0;i<n;i++)
    if(proverka(i,buf))
        mas[j++]=q[i];
    else
        mas[n++]=q[i];
//соответственно если индекс принадлежит индексам тех значений который от максимума отличаются менее чем на 20% их запишут в начало, если более чем то их запишут после тех которые описаны выше
Yandex
Объявления
28.10.2012, 10:35     задачка (сам уже весь запутался нафиг)
Ответ Создать тему
Опции темы

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