Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/210: Рейтинг темы: голосов - 210, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 6
1

Найти 100 первых простых чисел

17.08.2009, 09:04. Показов 41152. Ответов 70
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем помогите пожалуйста кто может у меня такая проблема не могу решить задачи по C++ потому что я не понимаю этот язык программирования вот несколько заданий.

1. Найти 100 первых простых чисел.
2. Дано число n. Напечатать те натуральные числа, квадрат которых не превышает n.
3. Дан массив x [1]..x[n] целых чисел. Не используя других массивов, переставить элементы массива в обратном порядке.
4. Дано слово. Определить, одинаковы ли второй и четвертый символы в нем.
5. Дано слово. Получить его часть, образованную идущими подряд буквами, начиная с k-й и кончая m-й, (k и m вводятся с клавиатуры).
6. Дана прямоугольная таблица a[1:n,1:m]. Найти минимальный из максимумов строк, т.е. min (max aij ), 1 <= i <= n, 1 <= j <= m
7. Все элементы матрицы, кроме диагональных, заменить единицами.
8. Дана квадратная таблица a[1:n,1:n]. Найти номер строки, содержащей наибольшее число нулей.
9. В соревнованиях по прыжкам в длину участвовали N-спортсменов. Каждый спортсмен мог сделать М-попыток. Результаты (длины прыжков) занесены в таблицу A[1:M,1:N]. Если результат не засчитывали, то вместо длины прыжков заносили ноль. Составить алгоритм, который дает возможность определить лучший результат К-ого спортсмена.
10. Дан массив данных о работающих на фабрике: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год). Определить, есть ли в списке Ивановы (Иванов, Иванова), если есть, то вывести их адрес (адреса) и посчитать из них количество, проработавших не менее двух лет на сегодняшний день.
11. Даны два одномерных массива A[n] и B[n]. Получить массив С[2,n], первая строка которого – упорядоченные по возрастанию элементы B[n], вторая строка – упорядоченные по убыванию элементы A[n]. Использовать алгоритм вставки.

Пожалуйста решите эти задания кто сможет зарание благодарен!!!!!!!!!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2009, 09:04
Ответы с готовыми решениями:

Найти 100 первых простых чисел
найти 100 первых простых чисел

Найти 100 первых простых чисел.
Простые, это те, которые делятся только на себя и на 1 :)

Найти первых 100 простых чисел
Найти первых 100 простых чисел. Помогите пожалуйста, никак не получается.

Четверки простых чисел из первых 100 натуральных
Привет всем Найти все четверки простых чисел из первых 100 натуральных, принадлежащих одному...

70
22 / 22 / 7
Регистрация: 21.10.2009
Сообщений: 38
29.10.2009, 17:43 41
Author24 — интернет-сервис помощи студентам
Программа №6:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
    SetConsoleOutputCP(1251);
    int n=1;
    cout<<"Программа №6\n";
    cout<<"Целые числа от 0 до 100:\n";
    while(n<=100)
    {
        cout<<n<<endl;
        n++;
    }
    cin.get();
    cin.get();
}
Найти 100 первых простых чисел

Программа №7:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{ 
    SetConsoleOutputCP(1251);
    int i=1;
    int n;
    cout<<"Программа №7\n";
    cout<<"Введите количество целых положительных чисел: ";
    cin>>n;
    while(i<=n)
    {
        cout<<"Число "<<i<<" в квадрате = "<<i*i<<endl;
        cout<<"Число "<<i<<" в кубе = "<<i*i*i<<endl;
        cout<<"---------------------------------------"<<endl;
        i++;
    }
    cin.get();
    cin.get();
}
Найти 100 первых простых чисел
1
22 / 22 / 7
Регистрация: 21.10.2009
Сообщений: 38
29.10.2009, 17:50 42
Программа №10:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{ 
    SetConsoleOutputCP(1251);
    float s, sm;
    cout<<"Программа №10\n";
    cout<<"Введите скорость в км/ч: ";
    cin>>s;
    sm=s*1000/3600;
    cout<<"Скорость: "<<sm<<" м/с"<<endl;
    cin.get();
    cin.get();
}
Найти 100 первых простых чисел
1
22 / 22 / 7
Регистрация: 21.10.2009
Сообщений: 38
29.10.2009, 18:22 43
Программа №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
#include <iostream>
using namespace std;
void main()
{
        setlocale(LC_ALL, "Russian");
        int i=0;
        int n;
        cout<<"Программа №3\n";
        cout<<"Катет звездочек едениц: ";
        cin>>n;
        for(i; i<n; i++)
        {
        int a=0;
        while(a<i+1)
            {
            cout<<"*";
            a++;
            }
        cout<<"\n";
        }
        cout<<"\n";
        system ("pause");
}
Добавлено через 7 минут
Программа №12:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
        setlocale(LC_ALL, "Russian");
        float i=1;
        float n;
        cout<<"Программа №12\n";
        cout<<"До какой степени производить расчет: ";
        cin>>n;
        while(i<=n)
            {
            float y=pow(2,i);
            cout<<"2 в степени "<<i<<" : "<<y<<endl;
            i++;
            }
        system ("pause");
}
1
22 / 22 / 7
Регистрация: 21.10.2009
Сообщений: 38
29.10.2009, 19:07 44
Программа №9:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
    SetConsoleOutputCP(1251);
    int n, h, m, d, s;
    cout<<"Программа №9\n";
    cout<<"Введите время в секундах: ";
    cin>>n;
    if(n>=86400)
    {
        d=n/86400;
        h=(n-86400*d)/3600;
        m=(n-86400*d-3600*h)/60;
        s=(n-86400*d-3600*h-60*m);
        cout<<"Полных дней: "<<d<<endl;
        cout<<"Полных часов: "<<h<<endl;
        cout<<"Полных минут: "<<m<<endl;
        cout<<"Полных секунд: "<<s<<endl;
        cin.get();
        cin.get();
    }
    else
    {
        if(n>=3600 && n<86400)
        {
            h=n/3600;
            m=(n-3600*h)/60;
            s=(n-3600*h-60*m);
            cout<<"Полных часов: "<<h<<endl;
            cout<<"Полных минут: "<<m<<endl;
            cout<<"Полных секунд: "<<s<<endl;
            cin.get();
            cin.get();
        }
        else
        {
            if(n<3600)
            {
                m=n/60;
                s=n-60*m;
                cout<<"Полных минут: "<<m<<endl;
                cout<<"Полных секунд: "<<s<<endl;
                cin.get();
                cin.get();
            }
            else
            {
                if(n<60)
                {
                    s=n;
                    cout<<"Полных секунд: "<<s<<endl;
                    cin.get();
                    cin.get();
                }
            }
        }
    }
}
1
Victim
11.12.2009, 13:20 45
Плиз помогите мне очень срочно нужно решение задач !!! А то кранты =)
1.Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего и среднего, меньшее оставить без изменения.
2.Вычислить приближенно значение бесконечной суммы с точностью до 0,0005:
Значение и точность расчетов ввести как константы (см. примечание к варианту 4).
3.Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Если в массиве есть элемент, равный среднему арифметическому, то программа должна вывести на экран номер этого элемента
4. Написать функцию, которая в заданном массиве определяет количество элементов, находящихся в диапазоне двух введённых чисел.

Хоть что нибудь просто время поджимает !
78 / 78 / 29
Регистрация: 01.08.2009
Сообщений: 177
11.12.2009, 14:48 46
Цитата Сообщение от Victim Посмотреть сообщение
Плиз помогите мне очень срочно нужно решение задач !!! А то кранты =)
1.Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего и среднего, меньшее оставить без изменения.
2.Вычислить приближенно значение бесконечной суммы с точностью до 0,0005:
Значение и точность расчетов ввести как константы (см. примечание к варианту 4).
3.Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Если в массиве есть элемент, равный среднему арифметическому, то программа должна вывести на экран номер этого элемента
4. Написать функцию, которая в заданном массиве определяет количество элементов, находящихся в диапазоне двух введённых чисел.

Хоть что нибудь просто время поджимает !
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
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
 
int poisk(int [],int, int);
 
 
int main()
{
    int arr[] = {0,1,2,3,4,5,6,7,8,9};
    int otvet = poisk(arr, 1, 3);
    cout << otvet <<endl;
    cin.get();
    return 0;
}
 
int poisk(int array[], int a, int b)
{
    int s = 0, i = 0;
    do
    {
        i++;
    } 
    while(array[i]!=a);
    i++;
    do
    {
        s++;
        i++;
    } 
    while(array[i]!=b);
    return s;
}


Добавлено через 40 минут
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
33
#include <iostream>
#include <stdlib.h>
 
#define size 200
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int arr[size];
    int summa = 0;
    int sA;
    for(int i = 0; i < size; i++)
    {
        arr[i] = random() % 100; // заполняем массив рандомными числами
        summa = summa + arr[i]; // считаем суммы всех элементов массива
    }
    
    sA = summa / size; // вычисляем среднее арифметическое
    for(int i = 0; i < size; i++)
    {
        if(sA==arr[i]){
            cout <<"Среднее арифметическое: "<< sA << endl 
                 <<"содержиться в ячейке: " << i <<endl;
            cin.get();
            return 0;
        }
    }
    cout <<"Среднее арифметическое: "<< sA << endl;
    cin.get();
    return 0;
}
1
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
24.12.2009, 21:05 47
Помогите!
1.условие
2.объяснение для переменных
3.Математическая модель
4.Программа
2
y=x-cosx a= П4 b=П2 ( x в квадрате!))
0
Victim
18.01.2010, 20:18 48
Получить номера строк, элементы каждой из которых образуют монотонную последовательность (монотонно убывающую или монотонно возрастающую).

Пожалуйста на завтра надо решить а у меня с++ накрылся инстальник на сёдня не смогу найти ((( ПЛИЗ!
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 5
02.06.2011, 21:47 49
прошу вашей помощи....я совсем не разбираюсь в области программирования


13.4 Преобразование массива
Удаление и вставка элементов

Array101. Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элементом массива с порядковым номером K вставить новый элемент с нулевым зна-чением.

13.5 Серии целых чисел

Array124.
Дано целое число K (> 0) и целочисленный массив размера N. Поме-нять местами последнюю серию массива и его серию с номером K. Если серий в массиве меньше K, то вывести массив без изменений.

17.2 Анализ и форматирование текста
Text28. Дан текстовый файл. Абзацы выделяются в нем с помощью красной строки (см. задание Text26), а пустых строк нет. Вставить между соседни-ми абзацами по одной пустой строке (в начало и конец файла пустые стро-ки не добавлять).
(задача Text26Text26. Дан текстовый файл. Найти количество абзацев в тексте, если первая строка каждого абзаца начинается с 5 пробелов («красная строка»). Пус-тые строки между абзацами не учитывать.
)


18.1 Одномерные и двумерные массивы

Param7. Описать процедуру Smooth3(A, N), выполняющую сглаживание веще-ственного массива A размера N следующим образом: каждый элемент мас-сива заменяется на его среднее арифметическое с соседними элементами (при вычислении среднего арифметического используются исходные зна-чения соседних элементов). Массив A является входным и выходным па-раметром. С помощью этой процедуры выполнить пятикратное сглажива-ние данного массива A размера N, выводя результаты каждого сглажива-ния.

Param46. Описать функцию BinToDec(S) целого типа, определяющую целое неотрицательное число по его строковому представлению S в двоичной системе счисления. Параметр S имеет строковый тип, состоит из символов «0»–«1» и не содержит ведущих нулей (за исключением значения «0»). Используя эту функцию, вывести пять чисел, для которых даны их двоич-ные представления. Используя эту функцию, вывести пять чисел, для которых даны их двоич-ные представления.


19.2 Разбор выражений

Recur16º. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом:
<выражение> ::= <терм>|<выражение> + <терм> |<выражение> – <терм>

<терм> ::= <элемент> | <терм> * <элемент>
<элемент> ::= <цифра> | (<выражение>)


15.3 Обработка строк с помощью стандартных функций. Поиск и замена
String28. Дан символ C и строка S. Удвоить каждое вхождение символа C в строку S.

16.1 Основные операции с двоичными файлами
Преобразование файла

File28. Дан файл вещественных чисел. Заменить в файле каждый элемент, кро-ме начального и конечного, на его среднее арифметическое с предыдущим и последующим элементом.
0
97 / 71 / 12
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
30.06.2011, 15:33 50
Вот номер 3 также
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
  int *a,i,j,n,p;
  cin>>n;
  a=new int[n];
  for(i=0;i<n;i++)
    cin>>a[i];
  for(i=0;i<n/2;i++)
  {
    p=a[i];
    a[i]=a[n-i-1];
    a[n-i-1]=p;
  }
  for(i=0;i<n;i++)
    cout<<a[i]<<' ';
  system("Pause");
}
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
01.08.2011, 23:07 51
N 1

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
#include<stdio.h>
 
int Prime (unsigned int n)
{
   if (n == 0 || n == 1) return 0;
   else
   {
      unsigned int i = 2;
      while (i*i <= n && n % i != 0)
         i++;
      return (i*i > n);
   }
}
 
int main()
{
   unsigned int i, n;
   printf("%d\n", 2);
   n = 1;
   for (i = 3; n < 100; i += 2)
      if (Prime(i))
      {
         printf("%d\n", i);
         n++;
      }
   getchar();
   return 0;
}


N 2

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
 
void Print(int n)
{
   int i;
   i = 1;
   while(i*i <= n)
   {
       printf("%d\n", i);
       i++;
   }
}
 
int main()
{
   int n;
   scanf("%d", &n);
   Print(n);
   return 0;
}


N 3

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Inverse(int *x, int n)
{
   int i, j;
   i = 0;
   j = n - 1;
   while(i < j)
   {
      x[i] ^= x[j];
      x[j] ^= x[i];
      x[i] ^= x[j];
      i++;
      j--;
   }
}


N 4

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
#include<string.h>
 
int Equal(char *s, int i, int j)
{
   return (i >= 0 && j < strlen(s) && s[i] == s[j]);
}
 
int main()
{
   char s[500];
   fgets(s, 500, stdin);
   printf("%s\n", Equal(s, 2, 4) ? "yes" : "no");
   getchar(); getchar();
   return 0;
}


N 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
#include<stdio.h>
#include<string.h>
 
int SubString(char *s, int i, int j, char *t)
{
   if (i >=0 && j < strlen(s) && i <= j)
   {
       strncpy(t, &s[i], j - i +1);
       t[j - i + 1] = '\0';
       return 1;
   }
   else
      return 0;
}
 
int main()
{
   char s[500], t[500];
   int i, j;
   fgets(s, 500, stdin);
   scanf("%d", &i);
   scanf("%d", &j);
   if (SubString(s, i, j, t))
      puts(t);
   getchar(); getchar();
   return 0;
}


N 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<stdio.h>
#define M 5      /* ÷èñëî ñòðîê ìàòðèöû */
#define N 10     /* ÷èñëî ñòîëáöîâ */
 
void Init(int a[M][N], int m, int n)
{
   int i, j;
   for (i = 0; i < m; i++)
      for (j = 0; j < n; j++)
         a[i][j] = rand()%100;
}
 
void Print(int a[M][N], int m, int n)
{
   int i, j;
   for (i = 0; i < m; i++)
   {
      for (j = 0; j < n; j++)
         printf("%4d", a[i][j]);
      printf("\n");
   }
}
 
int Max(int a[M][N], int m, int n, int k)
{
   int max, i;
   max = a[k][0];
   for(i = 1; i < n; i++)
      if (a[k][i] > max)
         max = a[k][i];
   return max;
}
 
int main()
{
   int a[M][N];
   int min, max, i;
   Init(a, M, N);
   Print(a, M, N);
   min = Max(a, M, N, 0);
   for (i = 1; i < M; i++)
   {
      max = Max(a, M, N, i);
      if (max < min)
         min = max;
   }
   printf("min = %d\n", min);
   getchar();
   return 0;
}


N 7

C
1
2
3
4
5
6
7
8
void Zamena(int a[N][N], int n)
{
   int i, j;
   for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
         if (i != j && j != n - 1 - i)
            a[i][j] = 1;
}


N 8

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<stdio.h>
#define N 10
 
void Init(int a[N][N], int n)
{
   int i, j;
   for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
         a[i][j] = rand()%10 - 5;
}
 
void Print(int a[N][N], int n)
{
   int i, j;
   for (i = 0; i < n; i++)
   {
      for (j = 0; j < n; j++)
         printf("%4d", a[i][j]);
      printf("\n");
   }
}
 
int Count(int a[N][N], int n, int k, int x)
{
   int i, count = 0;
   for (i = 0; i < n; i++)
      if (a[k][i] == x)
         count++;
   return count;
}
 
int main()
{
   int a[N][N];
   int max, i, count, num_i, flag;
   Init(a, N);
   Print(a, N);
 
   flag = num_i = max = 0;
   for (i = 0; i < N; i++)
   {
      count = Count(a, N, i, 0);
      if (count > max)
      {
         flag = 1;
         max = count;
         num_i = i;
      }
   }
   if (flag)
      printf("i = %d\n", num_i);
   else
      printf("в матрице нет нулевых элементов");
   getchar();
   return 0;
}


N 9

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<stdio.h>
#define M 5
#define N 10
 
int Max(int a[M][N], int m, int n, int k)
{
   int max, i;
   max = a[k][0];
   for(i = 1; i < n; i++)
      if (a[k][i] > max)
         max = a[k][i];
   return max;
}
 
int main()
{
   int a[M][N];
   int i;
   /* заполнение матрицы */
   for (i = 0; i < M; i++)
      printf("%d\n", Max(a, M, N, i));
   getchar();
   return 0;
}


N 10 и N 11 тоже крайне простые.

Читайте книги, например, http://www.twirpx.com/file/540580/

Добавлено через 3 часа 31 минуту
Цитата Сообщение от Asylbek Посмотреть сообщение
прошу вашей помощи....я совсем не разбираюсь в области программирования

13.4 Преобразование массива
Удаление и вставка элементов

Array101. Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением....
А кто умеет эффективно удалять элементы из массива? Это вопрос на засыпку. Это очень просто, но все же
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
01.08.2011, 23:28 52
Цитата Сообщение от Olga_ Посмотреть сообщение
А кто умеет эффективно удалять элементы из массива?
переместить в конец?)
1
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
01.08.2011, 23:35 53
Цитата Сообщение от Maxwe11 Посмотреть сообщение
переместить в конец?)
Так тут задача удалить, поэтому переместить или просто выкинуть - не важно, главное, чтобы удаляемых элементов не было среди других. Так вот есть очень эффективные методы и вопрос в том, кто как бы это реализовал
0
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
01.08.2011, 23:39 54
remove-erase
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
01.08.2011, 23:40 55
Цитата Сообщение от PointsEqual Посмотреть сообщение
remove-erase
+1
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
02.08.2011, 07:04 56
Что значит remove-erase. А код? Причем свой код, а не какой-то встроенный метод какого-нибудь класса, это просто слишком.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.08.2011, 07:13 57
Olga_, это стандартные алгоритмы С++. Программист на С++ обязан их знать и использовать, а не изобретать "велосипед"...
1
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
02.08.2011, 07:17 58
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Olga_, это стандартные алгоритмы С++. Программист на С++ обязан их знать и использовать, а не изобретать "велосипед"...
Даже стандартные алгоритмы могли быть написаны чей-то неумелой рукой. Ну да ладно, remove-erase такremove-erase, это максимум, что придумано на вопрос.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.08.2011, 07:27 59
Цитата Сообщение от Olga_ Посмотреть сообщение
Даже стандартные алгоритмы могли быть написаны чей-то неумелой рукой. Ну да ладно, remove-erase такremove-erase, это максимум, что придумано на вопрос.
Нет, не все.
0. Стандартные алгоритмы неумелой рукой не могут быть написаны.
0.0. Физически элемент из массива удалить нельзя - только переписав в новый массив.
1. Если требуется сохранять порядок элементов в массиве, то без перемещения элементов правее него никак не обойтись. - это делает алгоритм remove.
2. Если порядок элементов можно не сохранять, то нужно его обменять с последним элементом.
3. И наконец. Вместо массива нужно использовать стандартный контейнер vector.
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
02.08.2011, 07:40 60
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Нет, не все.
0. Стандартные алгоритмы неумелой рукой не могут быть написаны.
0.0. Физически элемент из массива удалить нельзя - только переписав в новый массив.
1. Если требуется сохранять порядок элементов в массиве, то без перемещения элементов правее него никак не обойтись. - это делает алгоритм remove.
2. Если порядок элементов можно не сохранять, то нужно его обменять с последним элементом.
3. И наконец. Вместо массива нужно использовать стандартный контейнер vector.
0. Бывает и такое
0.0. Конечно нельзя физически удалить, можно как-то перегруппировать элементы и в переменную, отвечающую за размерность записать новое значение, хотя в памяти массив может занимать гораздо больше места. Речь шла не о создании нового массива, а о манипуляции со старым.
1.,2. Удаляемых элементов может быть несколько (например, удалить все нулевые элементы).
3. Хотелось бы увидеть алгоритм без классов, а чистый код.

P.S. Легче написать код, чем спорить.
0
02.08.2011, 07:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2011, 07:40
Помогаю со студенческими работами здесь

Найти сто первых простых чисел
1. Найти сто первых простых чисел.

Найти N первых пар простых чисел, которые отличались бы друг от друга на 2
Не могу понять, почему не делается проверка числа на простоту. #include &quot;StdAfx.h&quot; #include...

Найти n первых простых чисел, сумма цифр у которых меньше заданного числа
Помогите написать программу! Условие: найти n первых простых чисел, сумма цифр у которых меньше...

Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9, не меньших 100 (Pascal -> C++)
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9 и находящихся в...


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

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru