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

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

Восстановить пароль Регистрация
 
kinoman471
 Аватар для kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.05.2012, 09:31     Удалить из массива все элементы, которые не являются однозначными или двухзначными. #1
Дан массив из n натуральных чисел. Удалить из массива все элементы, которые не являются однозначными или двухзначными.
Как найти эти числа?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 09:31     Удалить из массива все элементы, которые не являются однозначными или двухзначными.
Посмотрите здесь:

C++ Удалить из массива все элементы, которые меньше среднеарифметического значения всех элементов исходного массива
C++ Программа с массивами (Удалить из массива В (50) все элементы, кратные 3 или 5)
C++ Из массива А удалить все элементы, которые встречаются в В ровно 2 раза
C++ дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися)
Найти все элементы данного массива, которые являются точными квадратами и посчитать их произведение C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 знака, если нет - то удаляешь его, как сказано в задании.
kinoman471
 Аватар для 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--;
        }
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
06.05.2012, 11:31     Удалить из массива все элементы, которые не являются однозначными или двухзначными. #4
В задании сказано натуральные числа, а вы сделали массив double'ов. Double - вещественное число, то есть не целое, Сделайте, например, массив int.
kinoman471
 Аватар для 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;
 }
Не работает. Не пойму почему.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
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;
}
kinoman471
 Аватар для kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.06.2012, 19:36  [ТС]     Удалить из массива все элементы, которые не являются однозначными или двухзначными. #7
В оставшихся двузначных числах поменять местами цифры.
Примерно представляю, что двухзначное число можно представить как a*10+b, где a - количество десятков, b - количество единиц. После перестановки число будет такое: b*10+a.
Но не могу записать на C++. Прошу помощи
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
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;
}
kinoman471
 Аватар для kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
06.06.2012, 19:58  [ТС]     Удалить из массива все элементы, которые не являются однозначными или двухзначными. #9
Огромное спасибо! Выручили на все сто!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 20:11     Удалить из массива все элементы, которые не являются однозначными или двухзначными.
Еще ссылки по теме:

Удалить из строки все слова, которые не являются идентификаторами C++
Удалить из текста все символы, которые не являются буквами C++
Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение C++

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

Или воспользуйтесь поиском по форуму:
yleart
 Аватар для 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])
Yandex
Объявления
06.06.2012, 20:11     Удалить из массива все элементы, которые не являются однозначными или двухзначными.
Ответ Создать тему
Опции темы

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