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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
#1

Непрерывный ввод массива - C++

29.11.2010, 15:16. Просмотров 1111. Ответов 10
Метки нет (Все метки)

Доброе время суток, подскажите, как реализовать программку заполнения массива, так, что бы между элементами не нужно было нажимать Enter, а введя последовательность 12345 это воспринималось так:
A[0]=1;
A[1]=2;
A[2]=3;
A[3]=4;
A[4]=5;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2010, 15:16     Непрерывный ввод массива
Посмотрите здесь:

Строка: Имеются четыре буквы, необходимо удалить из массива все символы, кроме этих четырех и "склеить" оставшееся в непрерывный символьный массив. - C++
Имеются четыре буквы, необходимо удалить из массива все символы, кроме этих четырех и "склеить" оставшееся в непрерывный символьный...

непрерывный рюкзак - C++
Первая строка содержит количество предметов 1≤n≤10^3 и вместимость рюкзака 0≤W≤2⋅10^6. Каждая из следующих n строк задаёт стоимость...

Сгенерировать непрерывный синус - C++
Как сделать так чтобы функция синуса генерировалась непрерывно? sin(wt+f). Фаза тоже меняется со временем. Интересует именно чтобы...

Найти непрерывный участок - C++
Найти непрерывный участок из 10 элементов, сумма которых максимальна. Размер массива 50-200, диапазон чисел в массиве 0-100. Подскажите...

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

Найти непрерывный участок из 10 элементов, сумма которых максимальная - C++
Задание такое: Найти непрерывный участок из 10 элементов, сумма которых максимальная. Нельзя использовать индексацию. Максимальную...

Поле выполнения цикла получается непрерывный поток данных - C++
Здравствуйте! подскажите пожалуйсто, почему у меня после поле выполнения цикла получаетса какой то неперерывный поток данных? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.11.2010, 15:22     Непрерывный ввод массива #2
Цитата Сообщение от ПавелИтель Посмотреть сообщение
Доброе время суток, подскажите, как реализовать программку заполнения массива, так, что бы между элементами не нужно было нажимать Enter, а введя последовательность 12345 это воспринималось так:
Сделайте ввод в строку и разбейте ее посимвольно
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 15:59  [ТС]     Непрерывный ввод массива #3
Как-то так?
C
1
2
3
4
5
6
7
8
9
10
printf("\n Введите массив: ");
scanf("%s", &Stroka);
Stroka[5] = '\0';
A[0]= Stroka[0];
A[1]= Stroka[1];
A[2]= Stroka[2];
A[3]= Stroka[3];
A[4]= Stroka[4];
NikITKA123
19 / 18 / 1
Регистрация: 28.04.2010
Сообщений: 86
29.11.2010, 16:10     Непрерывный ввод массива #4
если надо, что бы с 0 до n (n - число, которое ввели вы), то так:
C++
1
2
for(i=0; i<n; n++)
a[i] = i + 1;
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 16:14  [ТС]     Непрерывный ввод массива #5
Мене важно, что бы символы перешли в числовой массив…
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.11.2010, 17:15     Непрерывный ввод массива #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[200];
    int *a, N, i;
    scanf("%s", &str);
    N=(int)strlen(str);
    a=new int[N];
    for(i=0; i<N; i++)
        a[i]=(int)(str[i]-'0');
    for(i=0; i<N; i++)
        printf("%d", a[i]);   
    return 0;
}
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 17:15  [ТС]     Непрерывный ввод массива #7
Спасибо, сейчас разберусь.
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 17:39  [ТС]     Непрерывный ввод массива #8
Еще раз спасибо большое, все понятно, работает, только одно прошу – растолкуйте, что вот это?
C
1
a[i]=(int)(str[i]-'0');
А особенно это? -
C
1
...-'0'
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.11.2010, 17:51     Непрерывный ввод массива #9
Цитата Сообщение от ПавелИтель Посмотреть сообщение
Еще раз спасибо большое, все понятно, работает, только одно прошу – растолкуйте, что вот это?
Дело в том, что символы '0', '1' ... '9' в кодовой таблице обозначены номерами отличными от 0,1...9.
То есть на самом деле '0' == 48, '1' == 49 и так далее. Поэтому чтобы получить реальное число необходимо сделать вычитание.
'0' - '0' = 0 (48 - 48 = 0)
'1' - '0' = 1 (49 - 48 = 1)
...
'9' - '0' = 9 (57 - 48 = 9)
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.11.2010, 17:54     Непрерывный ввод массива #10
У каждого символа есть свой код. У символа 0 он равен 48, у символа 1 он равен 49, у символа 2 он равен 50 и т.д.
Когда есть такая запись:
str[i]-'0'
, то это значит от кода символа который вводили отнимаем код символа 0, т.к. коды идут упорядоченно, то получим int-кое значение символа
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2010, 18:00     Непрерывный ввод массива
Еще ссылки по теме:

Найти непрерывный участок из 10 элементов, сумма которых максимальна - C++
Найти непрерывный участок из 10 элементов, сумма которых максимальна. Если размерность массива 200, а диапазон значений от 0 до 100.

найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением - C++
Проверьте пожалуйста, почему все средние значения (второй массив) одинаковы Задание: найти в массиве непрерывный участок из 10 чисел с...

ввод массива - C++
нужно ввести с клавиатуры строку char a; cin&gt;&gt;a; но больше 128 символов ввести не удается, помогите пожалуйста как решить эту...

ввод массива - C++
нужно ввести массив рандомом от а до b. как это сделать?

Ввод массива в С - C++
В двумерном массиве целых чисел А 10х10 сформировать квадратную матрицу по правилу: 1 2 3 . . 8 9 10 1 2 3 . . 8 9 0 1 2 3 . . 8...


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

Или воспользуйтесь поиском по форуму:
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 18:00  [ТС]     Непрерывный ввод массива #11
Все, ясно, большое спасибо!
Yandex
Объявления
29.11.2010, 18:00     Непрерывный ввод массива
Ответ Создать тему
Опции темы

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