Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 21:16   #1
Graf Xandr
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 58
Печаль Борланд С++ 3.1 , задача со строкой

Дан текст, содержащий цифры. Вывести на экран только нечетные цифры.
Что у меня получилось (неправильно):
#include <iostream.h>
#include <string.h>
#include <conio.h>
void main()
{
int h, i, g, j; char m[100]; char n[100];
cout<<"Vvedite text";
cin.getline(m,100);
h=strlen(m);
for(i=0;i<=strlen(m);i++)
for(g=0;g<=strlen(n);g++)
{
if(m[i]%2==0) {for (j=i; j<=strlen(m)-1; j++) m[j]=m[j+1]; h--;};}
for(i=0;i<=h;i++)
cout<<"stroka "<<n[g];
getch();
}
Пожалуйста, помогите. Любой совет или помощь будет полезна. А если не тяжело, перепишите правильно, ибо я студент - первокурсник и посему не всегда врубаюсь. Большое спасибо всем! Признателен за любую помощь.
Graf Xandr вне форума Ответить с цитированием
Старый 26.04.2009, 21:34   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;

int main()
{
char m[100],buf[20];
int i,k,len,a;
cin.getline(m,100,'\n');
cout<<endl;
len = strlen(m);
strcpy(buf,"");
for(i=0,k=0;i<len;i++)
 {
  while(m[i]==' ' && i<len) i++;

  while(m[i]!=' ' && i<len)
     buf[k++] = m[i++];

 a = atoi(buf);
 strcpy(buf,""); k=0;
 if(a%2!=0) cout<<a<<endl;
 i++;
 }

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.05.2009, 14:27   #3
Graf Xandr
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 58
По умолчанию

Извините, что вновь поднимаю тему, но у меня опять проблема. А именно: в задаче Sazary почему то есть некоторая ошибка. К примеру, при вводе "2 3 4 5 6 7 8 9" задача вообще не выдает ответ, при вводе "3 5 64" выдает лишь "3". Не поможете разобраться?
Graf Xandr вне форума Ответить с цитированием
Старый 09.05.2009, 14:37   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Да, извиняюсь, там маленькая ошибка:
В конце цикла лишний раз увеличивается i:
Код:
 if(a%2!=0) cout<<a<<endl;
 i++;
 }
Удалите эту строчку.

И еще добавить одну нужно.
В общем, рабочий вариант:
Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;

int main()
{
char m[100],buf[20];
int i,k,len,a;
cin.getline(m,100,'\n');
cout<<endl;
len = strlen(m);
strcpy(buf,"");

for(i=0,k=0;i<len;i++)
 {
  while(m[i]==' ' && i<len) i++;

  while(m[i]!=' ' && i<len)
     buf[k++] = m[i++];
 buf[k]=0;
 a = atoi(buf);
 strcpy(buf,""); k=0;
 if(a%2!=0) cout<<a<<endl;
 }

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 09.05.2009 в 14:42.
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача со строкой XaMeJleoH Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2009 19:07
Структуры в Борланд Си Алекс...))) Помощь студентам 1 26.02.2009 14:18
Строки в Борланд Си......... Алекс...))) Помощь студентам 6 16.02.2009 18:32
Задача со строкой Noxil Паскаль, Turbo Pascal, PascalABC.NET 9 22.11.2008 22:54