Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема преобразование массива char в массив int, Требуется помощь в написании программы 
:(
    Опции темы
Arahael
Дата 17.10.2010, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



Здравствуйте. Решал я задачу по программированию, всё было отлично, но тут случилась беда) 
Вобщем задача состоит в том, что бы с массива типа char, в котором записаны 15 чисел через пробел, создать массив чисел, ну и найти среди них самое большое число.

Вот кусок кода:
Код

    S = strtok(ost_ch, " "); // char *S, ost_ch массив типа char, в котором хранятся эти числа
    while(S!=NULL) {mas[j]=S; S=strtok(NULL, " "); j++; }  // char *mas[100], j=0
    for(i=0;i<j;i++) x[i]=atof(mas[i]); // double x[100]
    for(i=0;i<j;i++) cout << x[i] << endl; /* тут я просто вывожу этот массив на экран, т.е. я не писал код для нахлждения наибольшего числа */

Вот, всё работает, но оно заносит в массив х только первые 10 чисел (а их 15), и я не понимаю почему....если не сложно объясните пожалуйста, скажите где моя ошибка, или просто приведите пример, каким образом можно легче реализовать выполнение этой задачи. Спасибо.
PM MAIL   Вверх
EgorTheBlade
Дата 17.10.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Почему нельзя сделать через if(isdigit())? Может x[i] мал. Посмотрите на какой итерации это происходит и чем предыдущая отличается от той в которой происходит проблема
PM MAIL Skype   Вверх
mes
Дата 17.10.2010, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



на вид вроде правильно..
хотя вызывает сомнение инициализация ost_ch.

скопируйте код сюда : http://liveworkspace.org и дайте ссылку на тестовый пример. 


Это сообщение отредактировал(а) mes - 17.10.2010, 14:28


--------------------
PM MAIL WWW   Вверх
Arahael
Дата 17.10.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



и каким же образом через isdigit сделать?

И что такое итерация?
PM MAIL   Вверх
mes
Дата 17.10.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Arahael @  17.10.2010,  13:28 Найти цитируемый пост)
И что такое итерация? 

один шаг ( цикла или рекурсии )


--------------------
PM MAIL WWW   Вверх
Arahael
Дата 17.10.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



PM MAIL   Вверх
mes
Дата 17.10.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Arahael @  17.10.2010,  13:34 Найти цитируемый пост)
Вот. 

ну а привести в подобающий вид, чтоб все компилилось разве не нужно ?!

Код

   char ost_ch[20];


это всего 20 символов, учитывая что цифры написаны через пробел, всего 10 одноциферных чисел..

Добавлено через 55 секунд
вобщем увеличьте размер массива..

Добавлено через 2 минуты и 11 секунд
ну а вобще пока нет опыта разделяйте задание на части..

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

Добавлено через 3 минуты и 6 секунд
и не забывайте про тестовый вывод.. после каждого действия смотрите результат.. 

и не придется обращаться на форум из за мелочей smile



--------------------
PM MAIL WWW   Вверх
Arahael
Дата 17.10.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



Извиняюсь, там при подключении библиотеки string, я забыл дописать .h, поэтому оно и писало ошибку, но даже если там дописать .h и увеличить массив, всё равно ничего не получается

Добавлено через 43 секунды
с загрузкой из файла проблем не возникло)
PM MAIL   Вверх
EgorTheBlade
Дата 17.10.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Цитата(Arahael @  17.10.2010,  14:48 Найти цитируемый пост)
всё равно ничего не получается

Вы говорите что конкретно неполучается.Так будет проще решить возникшую трудность
PM MAIL Skype   Вверх
mes
Дата 17.10.2010, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Arahael @  17.10.2010,  13:48 Найти цитируемый пост)
я забыл дописать .h, поэтому оно и писало ошибку

для C++ правильнее <cstring>



--------------------
PM MAIL WWW   Вверх
Arahael
Дата 17.10.2010, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



Программа по прежнему преобразовывает только первые 10 символов числа
PM MAIL   Вверх
mes
Дата 17.10.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



у вас целые или вещественные числа ? если второе, то atof, a не atoi.. 



--------------------
PM MAIL WWW   Вверх
Arahael
Дата 17.10.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 25.7.2010

Репутация: нет
Всего: -1



Если писать <cstring> -- fatal error: сstring: No such file or directory
PM MAIL   Вверх
mes
Дата 17.10.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



ловите, привел часть вашей программы в читабельный вид 
http://liveworkspace.org/code/e8f261fa7870...4fea3c6bb3712c7

добавляйте теперь чтение с файла 



--------------------
PM MAIL WWW   Вверх
EgorTheBlade
Дата 17.10.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



можно весь код? или он большой?
PM MAIL Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0849 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.