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

В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Маша Болдина
2 / 2 / 0
Регистрация: 15.02.2012
Сообщений: 56
04.03.2012, 10:38     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #1
Даны натуральное число п, действительные числа X1 ..., Xn. В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями. Кроме того, получить сумму членов, принадлежащих отрезку [3, 7], а также, число таких членов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 10:38     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями
Посмотрите здесь:

В последовательности заменить все отрицательные члены на -1, положительные на 1, а нулевые оставить без изменений C++
Даный целые числа, заменить нулями члены, модуль которых при делении на p даёт в остатке q C++
Массив: В массиве a[1 … 67] заменить нулями члены, модуль которых при делении на p дает в остатке q. C++
C++ Заменить все члены последовательности заданным числом и подсчитать количество замен.
C++ В последовательности целых чисел заменить все элементы, меньшие заданного числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
04.03.2012, 11:31     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #2
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
 srand(time(NULL));
 int i=1,p,x,n;
 float a[100],sum=0;
 printf("n>7 = ");
 scanf("%d",&n);
 printf("Before:\n");
 for (x=1; x<n; x++)
  {
   a[x]=rand()%50-30.99;
   printf("%5.2f ",a[x]);
  }
  printf;
 printf("After:\n");
 for (x=1; x<n; x++)
  {
   if (a[x]<2) 
    a[x]=0;
   printf("%5.2f ",a[x]);
  }
   for (x=3; x<7; x++)
    {
     sum=sum+a[x];
     i++;
    }
  printf("\n");
  printf("Sum = %5.2f, Number [3,7] = %d\n",sum,i);
  system("pause");
  return 0;
}
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
04.03.2012, 12:10     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #3
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
#include <vector>
#include <iostream>
#include <iterator>
#include <cstdlib>
 
template <typename T>
class enter_value :
public std::unary_function<void, T>
{
    
public:
    T operator()() const
    {
        T value;
        std::cin >> value;
        return value;
    }
};
 
int main()
{
    unsigned int size;
    std::cout << "Введите число членов последовательности" << std::endl;
    std::cin >> size;
    std::vector<int> sequence(size);
    std::cout << "Введите члены последовательности" << std::endl;
    std::generate(sequence.begin(), sequence.end(), enter_value<int>());
    std::replace_if(sequence.begin(), sequence.end(), std::bind2nd(std::less<int>(), 2), 0);
    std::cout << "Ответ: " << std::endl; 
    std::copy(sequence.begin(), sequence.end(), std::ostream_iterator<int>(std::cout, " "));
    return EXIT_SUCCESS;
}
Маша Болдина
2 / 2 / 0
Регистрация: 15.02.2012
Сообщений: 56
04.03.2012, 22:45  [ТС]     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #4
Извините, но программа не работает)Можете еще раз пересмотреть.спасибо
NEO*
14 / 14 / 1
Регистрация: 02.11.2011
Сообщений: 22
05.03.2012, 00:27     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #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
#include <iostream>
using namespace std;
 
int main()
{
    int n; int i; float s=0; int k=0;
    cin>>n;
 
 
 
    float x[n];
 
        for(i=0;i<n;i++)
        {
            cin>>x[i];
        }
 
cout<<endl;
 
for(i=0;i<n;i++)
 
{
   if (x[i]<2) x[i]=0;   //заменяем элементы, меньшие двух, нулями
}
 
        for(i=0;i<n;i++)
        {
    if ((x[i]>=3)&(x[i]<=7))
    {
        s=s+x[i];
        k++;
    }
        }
 
     for(i=0;i<n;i++)
     cout<<x[i]<<"\t";   //выводим исправленный массив
 
cout<<"s="<<s<<endl; //сумма элементов из отрезка [3;7]
cout<<"k="<<k<<endl; //их количество
 
    return 0;
}
Маша Болдина
2 / 2 / 0
Регистрация: 15.02.2012
Сообщений: 56
05.03.2012, 05:24  [ТС]     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #6
почему то у меня компилятор выводит 3 ошибки: 1) неизвестен размер х 2)константа не уточнена 3)не может ассигновать множество постоянного размера 0
kazak
05.03.2012, 05:32
  #7

Не по теме:

Мне кажется, было бы намного проще, если бы Вы уточнили какой у Вас компилятор.

Маша Болдина
2 / 2 / 0
Регистрация: 15.02.2012
Сообщений: 56
05.03.2012, 05:36  [ТС]     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #8
Microsoft Visual C++ 6.0
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2012, 05:45     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #9
Ага, у NEO размер статического массива задан переменной, что недопустимо, 11 строчка. Нужно заменить на константу.
Маша Болдина
2 / 2 / 0
Регистрация: 15.02.2012
Сообщений: 56
05.03.2012, 05:52  [ТС]     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #10
возможно это очень глупый вопрос, пожалуйста скажите как?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2012, 05:56     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #11
Ну, чтобы с минимумом изменений, то вместо float x[n], написать, допустим, float x[100].
NEO*
14 / 14 / 1
Регистрация: 02.11.2011
Сообщений: 22
05.03.2012, 15:40     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #12
там выше эта переменная инициализируется, и на Mingw всё работает.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2012, 15:46     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #13
Цитата Сообщение от NEO* Посмотреть сообщение
на Mingw всё работает.
это исключение, по нынешнему не скажу, а по предыдущим стандартам размер статического массива должен быть известен на этапе компиляции, поэтому задаваться он может исключительно константными выражениями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 16:04     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями
Еще ссылки по теме:

Заменить все члены последовательности, большие заданного числа Z, этим числом; подсчитать количество замен C++
C++ Даны две последовательности. Верно ли, что все члены второй последовательности входят в первую?
C++ Заменить нулями члены, модуль которых при делении на p дает в остатке q

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.03.2012, 16:04     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями #14
Цитата Сообщение от kazak Посмотреть сообщение
это исключение, по нынешнему не скажу
Это расширение gcc, variable-length array называется.
Поддерживается в С99, новый стандарт их запрещает, но вводит constexpr(хотя в данном случае она бесполезна).
Yandex
Объявления
05.03.2012, 16:04     В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями
Ответ Создать тему
Опции темы

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