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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
#1

Удалить из массива все элементы, которые не являются однозначными или двухзначными. - C++

06.05.2012, 09:31. Просмотров 1030. Ответов 9
Метки нет (Все метки)

Дан массив из n натуральных чисел. Удалить из массива все элементы, которые не являются однозначными или двухзначными.
Как найти эти числа?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 09:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из массива все элементы, которые не являются однозначными или двухзначными. (C++):

дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися) - C++
нужно чтоб на экран еще выводило перед новым массивом А, числа,которые повторяются в массиве В 2 раза. и перед С тоже чтоб выводило на...

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

Найти все элементы данного массива, которые являются точными квадратами и посчитать их произведение - C++
Дано линейный массив действительных чисел. Найти все элементы данного массива, которые являются точными квадратами и посчитать их...

Удалить из массива все элементы, которые меньше среднеарифметического значения всех элементов исходного массива - C++
Дан массив из n действительных чисел. Удалить из массива все элементы, которые меньше среднеарифметического значения всех элементов...

Из массива А удалить все элементы, которые встречаются в В ровно 2 раза - C++
Вводятся массивы А и В. Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые...

Из массива А удалить все элементы, которые встречаются в В ровно 2 раза - C++
Помогите пожалуйста с задаче по массивам. Вводятся массивы А и В. Из массива А удалить все элементы, которые встречаются в В ровно 2...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
06.05.2012, 10:26 #2
C++
1
if (number % 100 != 0) std::cout<<"Запись числа имеет более 2х знаков"<<std::endl;
Если остаток от деления на 100 == 0 значит число в 1 или 2 знака, если нет - то удаляешь его, как сказано в задании.
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.05.2012, 11:29  [ТС] #3
Вот мой код по решению, но компилятор ошибку выдает

error: invalid operands of types 'double' and 'int' to binary 'operator%'|
error: type 'double' argument given to 'delete', expected pointer|

C++
1
2
3
4
5
6
7
8
9
10
11
12
const int n = 5;
    double x[n];
    int i, k;
    int u = 100;
    cout<<"Input 5 numbers:\n";
    for (i = 0; i < n; i++)
    cin>>x[i];
    for (i = 0; i < n; i++)
    {
    if (x[i] % u ==0)
    delete x[i];
    }
Добавлено через 15 минут
Изменил немного, но условие не принимает почему-то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 const int n = 5;
    double x[n];
    int i, k, j;
    k = n;
    cout<<"Input 5 numbers:\n";
    for (i = 0; i < n; i++)
    cin>>x[i];
    for (i = 0; i < k; i++)
    {
    if (x[i] % 100 ==0)
    k--;
    for(j = i; j < k; j++)
             x[j] = x[j+1];
          i--;
        }
0
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
06.05.2012, 11:31 #4
В задании сказано натуральные числа, а вы сделали массив double'ов. Double - вещественное число, то есть не целое, Сделайте, например, массив int.
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.06.2012, 19:13  [ТС] #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
#include <iostream>
 #include <cmath>
 using namespace std;
 
 int main()
 {
     int n = 5;
     int x[n];
     int i, k, j;
     cout<<"Input 5 numbers:\n";
     for (i = 0; i < n; i++)
     cin>>x[i];
     k=0;
     for (i = 0; i < n; i++)
     {
     if (x[i] % 100 != 0)
     {
       x[k] = x[i];
       k++;
     }
 
         }
     cout<<"mass:"<<endl;
     for(i = 0; i < k; i++)
     cout<<x[i]<<endl;
 
  return 0;
 }
Не работает. Не пойму почему.
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 19:23 #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
#include <iostream>
#include <conio.h>
using namespace std;
const int n=10;
int main()
{
    int mas[n]={353,2,63,432,3424,141414,33,2,5,552};
    int newMas[n]={0,0,0,0,0,0,0,0,0,0};
    int pos=0;
    cout<<"Mas: "<<endl;
    for(int i=0;i<n;i++)
        cout<<mas[i]<<" ";
    cout<<"\nNew mas: "<<endl;
    for(int i=0;i<n;i++)
    {
        if(mas[i]/100<1) 
        {
                newMas[pos]=mas[i];
                cout<<newMas[pos]<<" ";
                pos++;
        }
    }
    getch();
    return 0;
}
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.06.2012, 19:36  [ТС] #7
В оставшихся двузначных числах поменять местами цифры.
Примерно представляю, что двухзначное число можно представить как a*10+b, где a - количество десятков, b - количество единиц. После перестановки число будет такое: b*10+a.
Но не могу записать на C++. Прошу помощи
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 19:43 #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
#include <iostream>
#include <conio.h>
using namespace std;
const int n=10;
int main()
{
    int mas[n]={353,2,63,432,3424,141414,33,2,5,552};
    int newMas[n]={0,0,0,0,0,0,0,0,0,0};
    int pos=0;
    cout<<"Mas: "<<endl;
    for(int i=0;i<n;i++)
        cout<<mas[i]<<" ";
    cout<<"\nNew mas: "<<endl;
    for(int i=0;i<n;i++)
    {
        if(mas[i]/100<1) 
        {
                newMas[pos]=mas[i];
                cout<<newMas[pos]<<" ";
                pos++;
        }
    }
    cout<<"\nMenyaem mestami: "<<endl;
    for(int i=0;i<pos;i++)
    {
        if(newMas[i]>9)
        {
            int temp=newMas[i]%10;
            int temp1=newMas[i]/10;
            newMas[i]=temp*10+temp1;
            cout<<newMas[i]<<" ";
        }
        else cout<<newMas[i]<<" ";
    }
    getch();
    return 0;
}
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.06.2012, 19:58  [ТС] #9
Огромное спасибо! Выручили на все сто!
0
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
06.06.2012, 20:11 #10
C++
1
2
     int n = 5;
     int x[n];
Если компилятор не gcc то и не должно работать..
сделай так:
C++
1
2
int *a;
a=new int [n];
2)Проверочное условие всегда истинно, если число не оканчивается 00, в этом и проблема.Попробуй так
C++
1
 if (x[i] % 100 == x[i])
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 20:11
Привет! Вот еще темы с ответами:

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

Удалить из текста все символы, которые не являются буквами - C++
Удалит из текста все символы, которые не являются буквами латинского алфавита или кириллицы

Удалить из строки все слова, которые не являются идентификаторами - C++
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В...

Найти все элементы массива, которые меньше или равны своему индексу - C++
Помогите пожалуйста с написание кода. Выдаёт ошибку, не могу понять где.:( Задание: Дано одномерный массив размерностью N. Найти все...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.06.2012, 20:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru