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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
ПавелИтель
 Аватар для ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
29.11.2010, 15:16     Непрерывный ввод массива #1
Доброе время суток, подскажите, как реализовать программку заполнения массива, так, что бы между элементами не нужно было нажимать 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++
C++ ввод двумерного массива,ввод размерности массива,заполнение массива случайными числами
C++ Сгенерировать непрерывный синус
C++ Написать программу, которая вычисляет сумму элементов двумерного массива по столбцам. Организовать ввод массива с клавиатуры по строкам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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++
 Аватар для valeriikozlov
4660 / 2486 / 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
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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++
 Аватар для valeriikozlov
4660 / 2486 / 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     Непрерывный ввод массива
Еще ссылки по теме:

Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного C++
C++ Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного
C++ Найти непрерывный участок последовательности

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

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

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