0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
1

Динамический массив

19.11.2013, 14:09. Показов 634. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: "Написать программу выводящую каждый четный(нечетный) элемент массива" пояснение: пользователь вводит слово с клавиатуры, программа выводит на экран каждую вторую букву ( начиная с первой или второй без разницы).
Помогите пожалуйста разобраться, каким образом слово вводимое пользователем записать посимвольно в массив?
я пробовал сделать вот так, но это не через динамический массив и все равно не работает ...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <"iostream">
using namespace std;
int main()
{
    cout<<"Enter string: "<<endl;
    string str;
    cin >> str;
    char charmass[str.length()];
    int strln=str.length();
    for (int i=0;i<strln;i++)
    {
        if ((i%2)==0)
        {
            cout << charmass [i];
        }
    }
    system("pause");
    return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2013, 14:09
Ответы с готовыми решениями:

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

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают,...

Создать динамический класс Book, содержащей динамический массив Authors
всем привет. может кто-то набросать код для такой вот задачи: Создать динамический класс Book,...

8
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
19.11.2013, 14:21 2
Наверное как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
 
int main(int argc, char *argv[])
{
   std::string str;
   std::cout << "Input string: "; getline(cin,str); std::cout << std::endl;
 
   for(int i=0; i<=str.size(); ++i)
       if(str[i]%2 == 0)
           std::cout << str[i] << " ";
           std::cout << std::endl;       
    
    system("PAUSE");
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
19.11.2013, 14:31  [ТС] 3
getline не определен, + если прописано using namespace std; зачем каждый раз приписывать std:: ?
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
19.11.2013, 14:57 4
если прописано using namespace std; зачем каждый раз приписывать std::
Вы правы уберите, и замените
C++
1
getline(cin,str);
на
C++
1
std::getline(std::cin,str);
0
5 / 2 / 0
Регистрация: 18.07.2012
Сообщений: 54
19.11.2013, 15:09 5
Я конечно, немного не в тему, но четный или нечетный элемент можно определить еще в цикле

C++
1
2
3
4
5
6
7
8
9
10
  for(int i=1; i<=str.size(); i=i+2) //нечет
       std::cout << str[i] << " ";
       std::cout << std::endl;    
      
        ...
 
for(int i=0; i<=str.size(); i=i+2) //чет
        std::cout << str[i] << " ";
       std::cout << std::endl;
       ...
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
19.11.2013, 15:41 6
Цитата Сообщение от egor2116 Посмотреть сообщение
for(int i=0; i<=str.size(); ++i)
Цитата Сообщение от Vermilionka Посмотреть сообщение
for(int i=1; i<=str.size(); i=i+2)
Нижняя граница массива(в данном случае строки) - 0, верхняя - str.size()-1, следовательно для доступа к его i-му элементу должно выполнятся условие 0 <= i < str.size(), все остальное выход за пределы массивы.
0
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
19.11.2013, 16:33  [ТС] 7
спасибо всем конечно, но на мой вопрос никто так и не ответил, с помощью чего, записать в массив по символьно слово введенное с клавиатуры?
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
19.11.2013, 17: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
#include <iostream>
#include <vector>
#include <cctype>
 
int main() {
    std::vector<char> chars;
    bool ignore = true;
    
    // вводим символы игнорируя начальные,
    // не являющиеся буквами
    while(std::cin.good()) {
        char c=std::cin.get();
        if(isalpha(c)) {         // нашли символ букву
            ignore = false;    // перестаем игнорировать остальные
            chars.push_back(c);// добавляем букву в массив
        }
        else if(ignore == false) // если символ не буква
                         // и была найдена хотябы одна буква
            break;       // то выходим из цикла ввода
    }
    std::cin.sync();
    
    // посимвольный вывод - по одной букве на строке
    for(char ch : chars) {
        std::cout<< ch <<std::endl;
    }
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
~/src/tests
max@notebook:$ g++ --std=c++11 cba.cpp
~/src/tests
max@notebook:$ ./a.out
21334<<< qwerty>>>
q
w
e
r
t
y
0
19 / 19 / 3
Регистрация: 19.11.2013
Сообщений: 83
19.11.2013, 17:57 9
Цитата Сообщение от ElanGlaed Посмотреть сообщение
спасибо всем конечно, но на мой вопрос никто так и не ответил, с помощью чего, записать в массив по символьно слово введенное с клавиатуры?
1 вариант: Используй тип char c массивом, например так:
char ch[size]; //size - размер
cin>>ch;
cout<<ch[n]; // n - элемент будет на экране
То есть:
вводим: привет
n=1
на экране: р

2 вариант: Используй указатель, напрмиер так:
char *ch;
cin>>ch;
cout<<ch[n]; // можно по-другому: cout<<*(ch+n);
0
19.11.2013, 17:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2013, 17:57
Помогаю со студенческими работами здесь

Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Динамические массивы привлекают больше. :)

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой массив только...

Заполнить динамический массив из файла и записать массив обратно в файл
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную...

Динамический массив: целое число разложить на массив простых множителей
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru