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

Разбивка введенного числа поэлементно на массив

21.09.2014, 19:48. Показов 1069. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно разбить введенное число с клавиатуры на массив поэлементно. В цикле должно поэлементно сравниваться символы и если условие совпадает, то записывать в массив. А у меня в массив записывается одно только число "44". Как правильно?
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
#include "stdafx.h"
#include "locale.h"
#include <stdio.h>
#include "winsock.h"
#include "windows.h"
#include <vector>
//using namespace std;
int main()
{
int cp=GetConsoleCP();  // сохранить оригинальную консоль
setlocale(LC_ALL, ".1251"); // установить кириллицу для вывода
printf("Привет! Вводим дробное число:\n");
int n=0; char ch;int k=0;int j=0;
std::vector<char> v1(5);
SetConsoleCP(1251); // установить кириллицу для ввода
while((ch=getchar()) !='\n')
{
switch(ch){
case '0':v1[k]='0';
    case '1':v1[k]='1';
    case '2':v1[k]='2';
    case '3':v1[k]='3';
    case '4':v1[k]='4';
    case '5':v1[k]='5';
    case '6':v1[k]='6';
    case '7':v1[k]='7';
    case '8':v1[k]='8';
    case '9':v1[k]='9';
    case ',':v1[k]=',';
}
 k++;
}
SetConsoleCP(cp);   // !!!обязательно восстановить оригинальную консоль
// после getchar()
setlocale(LC_ALL, ".1251"); // установить кириллицу для вывода
for(int i = 0; i < 5; i++){
        printf("%d ", v1[i]);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2014, 19:48
Ответы с готовыми решениями:

Разбивка слова поэлементно и присваивание их нумерацию алфавита
Добрый день, такой вопрос: дано рандомное слово (например, самолеты), как сделать так, чтобы питон...

Отсортировать массив до введенного числа и после
Подскажите как переделать чтобы до введенного числа числа шли по возрастанию а после по убыванию...

Вставка числа, введенного пользователем в массив
Есть определенный массив. Нужно вставить число, введенное пользователем в текстовое поле после...

Cоздать массив размера введенного числа
Ребят не могу создать массив. Вот часть кода: int a = 0; cout &lt;&lt; &quot;Введите кол-во клавишь на...

4
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.09.2014, 20:08 2
В switch забыли ставить break в каждом case
А если красивее, то так
C++
1
2
3
4
5
6
7
8
9
std::vector<char> v1;
while( (ch=cin.get()) !='\n')
{
    if(isdigit(ch) || ch==',')
           v1.push_back(ch);
   else
          v1.push_back(0); // У Вас почему-то не предусмотрено значение в этом случае
   
}
1
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 14
22.09.2014, 01:50  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
В switch забыли ставить break в каждом case
А если красивее, то так
C++
1
2
3
4
5
6
7
8
std::vector<char> v1;
while( (ch=cin.get()) !='\n')
{
  if(isdigit(ch) || ch==',')
    v1.push_back(ch);
  else
    v1.push_back(0); // У Вас почему-то не предусмотрено значение в этом случае
}
Не в первом ни во-втором случае не записывается правильно элементы. Вместо чисел "1", "2".."9" записываются числа "50", "52", "44"
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
22.09.2014, 02:02 4
chiter1992, может потому, что '0' вовсе не 0, а код символа "0"
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2014, 05:56 5
Цитата Сообщение от chiter1992 Посмотреть сообщение
ни во-втором случае не записывается правильно элементы
C++
1
2
for(int i = 0; i < v1.size(); i++)
    printf("%c ", v1[i]);
1
22.09.2014, 05:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2014, 05:56
Помогаю со студенческими работами здесь

Разбиение введенного числа на цифры и занесение этих цифр в массив
3.***Написать программу, которая осуществляет разбиение введенного числа на цифры и заносит эти...

Сформировать массив из всех делителей введенного с клавиатуры натурального числа
Сформировать массив из всех делителей введенного с клавиатуры натурального числа. Сформированный...

Из элементов введенного массива сформировать новый массив, содержащий положительные числа
Написать программу ввода массива целых чисел из текстового файла. Файл содержит не более 100...

Найти простые делители целого числа n введенного с клавиатуры и записать в массив
Есть код который определяет делители числа введенного с клавиатуры, что нужно исправить чтобы...


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

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