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

Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
01.12.2012, 12:50     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #1
Помогите составить программу:
Удалить из массива В (50) все элементы, кратные 3 или 5.
Буду благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 12:50     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5)
Посмотрите здесь:

Удалить из массива элементы кратные 7 C++
C++ Удалить элементы кратные 7. Добавить после каждого элемента массива элемент со значенем 0.
Найти все элементы, кратные 3 или 5. Сколько их? C++
Удалить из массива все элементы, которые не являются однозначными или двухзначными. C++
Вывести все элементы массива кратные 3 и удовлетворяющие условию -10<=p[i]<=15 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
01.12.2012, 13:16     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #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
#include <iostream>
 
int main()
{
    int b[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    
    unsigned int size = sizeof(b) / sizeof(b[0]);
    bool has = false;
    
    do
    {
        has = false;
        for (unsigned int i = 0; i < size; ++i)
            if (b[i] % 3 == 0 || b[i] % 5 == 0)
            {
                has = true;
                std::swap(b[i], b[size - 1]);
                --size;
                break;
            }
    } while (has);
 
    for (unsigned int i = 0; i < size; ++i)
        std::cout << b[i] << " ";
    std::cout << std::endl;
    
    return EXIT_SUCCESS;
}
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 112
01.12.2012, 13:40     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #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 "stdafx.h"
#include <iostream.h>
#include <cstdlib>
 
int main(int argc, char* argv[])
{
    const n=50;
    int arr[n];
        for(int i=0;i<n;i++){
            arr[i]=rand();
            cout<<arr[i]<<endl;
    }
        for(int j=0;j<n;j++){
            if(arr[j]%3==0||arr[j]%5==0){
                    }
        else{
            cout<<"/";
            cout<<arr[j]<<endl;
            }
    }
    return 0;
}
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.12.2012, 14:02     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #4
+ решение через STL:
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 <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <ctime>
 
int main()
{
    std::srand(unsigned(time(0)));
    std::vector<int> B;
    std::generate_n(back_inserter(B), 50, []{return std::rand()%10;});
 
    std::cout<<"Before:\n";
    std::copy(B.cbegin(), B.cend(), std::ostream_iterator<int>(std::cout, " "));
 
    B.erase(std::remove_if(B.begin(), B.end(), [](const int n){return (n%3 == 0 || n%5 == 0);}), B.end());
 
    std::cout<<"\nAfter:\n";
    std::copy(B.cbegin(), B.cend(), std::ostream_iterator<int>(std::cout, " "));
 
    std::cout<<std::endl;
    system("pause");
    return 0;
}
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
01.12.2012, 21:53  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #5
А почему программы не работают? Во всех ошибку выдает.
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 112
01.12.2012, 21:58     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #6
ты в какой среде программы запускаешь? и что за ошибки пишет? все программы я запускал - все работали
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
01.12.2012, 22:02  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #7
Krugera, Dev C++.
Ошибки в 8, 11, 13 строках.
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 112
01.12.2012, 22:13     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #8
Цитата Сообщение от frank_lampard Посмотреть сообщение
Krugera, Dev C++.
Ошибки в 8, 11, 13 строках.
А сообщения о ошибке какое?
Программу писал в среде Visual C++
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.12.2012, 22:14     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #9
А главное, который из трех предложенных кодов?
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
01.12.2012, 22:30  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #10
Вот тут помогите ошибку исправить, делал программу до этого:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
    const int M=50;
    int a[M], i, j;
    srand(time(NULL));
    for (int i=0; i<M; i++)
    {
 
 
        for(j%3==0||j%5==0)
 
        }
     for(int i=0; i<M; i++)
      {
      printf("mas=%d", mas[i]);
      }
   system ("pause");
   return 0;
}
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
01.12.2012, 23:01     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #11
Цитата Сообщение от frank_lampard Посмотреть сообщение
Вот тут помогите ошибку исправить, делал программу до этого:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
    const int M=50;
    int a[M], i, j;
    srand(time(NULL));
    for (int i=0; i<M; i++)
    {
 
 
        for(j%3==0||j%5==0)
 
        }
     for(int i=0; i<M; i++)
      {
      printf("mas=%d", mas[i]);
      }
   system ("pause");
   return 0;
}
are you fucking kidding me?..
тебе же написали решения, хоть и только в 1 из них элементы удалются...)
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
01.12.2012, 23:06  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #12
NeonLost, просто в тех я много чего не понимаю, а про что понимаю то и написал, но ошибка какая-то. Не поможете?
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
01.12.2012, 23:33     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #13
Цитата Сообщение от frank_lampard Посмотреть сообщение
NeonLost, просто в тех я много чего не понимаю, а про что понимаю то и написал, но ошибка какая-то. Не поможете?
разберитесь с 1 или 2 решением...а это оставьте...там впринципе ничего правильного нет...)

Добавлено через 10 минут
так понятней?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstdlib>
int main()
{
    const int n=50;
    int mas[n];
     printf("ishodniy \n \n");
        for(int i=0;i<n;i++){
            mas[i]=rand();
            printf("mas=%d \n", mas[i]);
    }
        printf("sortirovanniy \n \n");
        for(int i=0;i<n;i++){
            if(mas[i]%3==0||mas[i]%5==0){
                    }
        else{
            printf("mas=%d \n", mas[i]);
            }
    }
        getchar();
    return 0;
}
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
02.12.2012, 11:54  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #14
NeonLost, в 8 и 13 строках пишет ошибку, где "for"
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.12.2012, 11:58     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #15
Интересно, что за ошибка. Вообще, ошибка должна быть в printf, т.к. вместо cstdio подключен iostream, который здесь вообще не используется.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
02.12.2012, 12:22     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #16

Не по теме:

Цитата Сообщение от BumerangSP Посмотреть сообщение
Интересно, что за ошибка. Вообще, ошибка должна быть в printf, т.к. вместо cstdio подключен iostream, который здесь вообще не используется.
В iostream подключается stdio.h (правда не знаю во всех релизах или нет)


Цитата Сообщение от frank_lampard Посмотреть сообщение
NeonLost, в 8 и 13 строках пишет ошибку, где "for"
номер и текст ошибки?
BumerangSP
02.12.2012, 12:34
  #17

Не по теме:

Croessmah, ну, у меня именно там выдает, больше нигде. Примечательно, что ошибки у ТС в циклах выпадают. Может из-за объявления переменных? Хотя, насколько стар должен быть компилятор для этого

frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
02.12.2012, 15:03  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #18
Croessmah, 13:'for' loop initial declaration used outside C99 mode
9:`i' undeclared (first use in this function)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
02.12.2012, 15:16     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #19
Цитата Сообщение от frank_lampard Посмотреть сообщение
Croessmah, 13:'for' loop initial declaration used outside C99 mode
9:`i' undeclared (first use in this function)
Попробуйте вынести объявления переменной int из циклов:
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>
#include <cstdlib>
int main()
{
    const int n=50;
    int mas[n];
    int i;
     printf("ishodniy \n \n");
        for(i=0;i<n;i++){
            mas[i]=rand();
            printf("mas=%d \n", mas[i]);
    }
        printf("sortirovanniy \n \n");
        for(i=0;i<n;i++){
            if(mas[i]%3==0||mas[i]%5==0){
                    }
        else{
            printf("mas=%d \n", mas[i]);
            }
    }
        getchar();
    return 0;
}
Переделать из С++ в С
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 17:46     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5)
Еще ссылки по теме:

C++ Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
C++ Массивы: все элементы, кратные 10, заменить 0, все нечетные элементы удвоить, а четные уменьшить в 2 раза
Перенести все кратные 5 элементы из одного массива в другой C++

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

Или воспользуйтесь поиском по форуму:
frank_lampard
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
02.12.2012, 17:46  [ТС]     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5) #20
Croessmah, спасибо большое, можете ещё тут помочь Дана строка символов. Определить, является ли она правильным скобочным выражением? Буду благодарен!
Yandex
Объявления
02.12.2012, 17:46     Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5)
Ответ Создать тему
Опции темы

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