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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.12.2008, 08:37   #1
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию Найти и вывести на экран группы с четным количеством символов. задачи Си.

Дана строка, состоящая из 0 и 1. Каждая группа символов отделяется друг от друга одним или несколькими пробелами.Найти и вывести на экран группы с четным количеством символов.
Kventin вне форума
Старый 18.12.2008, 12:01   #2
ivan89
Пользователь
 
Аватар для ivan89
 
Регистрация: 22.09.2008
Сообщений: 59
По умолчанию

Код:
#include <iostream>
int main() 
{
	using namespace std;
	char st[256];
	int t=0,k=0;
           cin.getline(st,256);
	cout<<"otvet\n";
	for(int i=0; i<=strlen(st); i++)
	{
		if(st[i]=='1' || st[i]=='0')
		{
		    t++;
                           k=1;
		}
		if(st[i]==' ' || st[i]=='\0')
		{
			if(t%2==0 && k==1 )
			{
				for(int j=i-t; j<i; j++)
                                             cout<< st[j] ;
				 cout<<endl;
			}
			t=0;
			k=0;
		}
	}
	return 0;
}
ivan89 вне форума
Старый 18.12.2008, 18:30   #3
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
Хорошо Спасибо!!!

Спасибо огромное, все работает как часы. Очень благодарен.
Kventin вне форума
Старый 18.12.2008, 18:34   #4
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
По умолчанию Я прав?

ты не объявил переменную i или так можно?
ой все увидел в цикле
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума
Старый 19.12.2008, 08:52   #5
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию

Еще не поможете с одной задачкой??? Если не сложно.

В массиве A(n) найдите число элементов между первым и вторым нулевыми элементами. Данные для ввода n=7, A(1.0.2.3.4.0.0)

Заранее спасибо!!!
Kventin вне форума
Старый 19.12.2008, 10:04   #6
ivan89
Пользователь
 
Аватар для ivan89
 
Регистрация: 22.09.2008
Сообщений: 59
По умолчанию

Код:
#include <iostream>
int main()
{
	using namespace std;
	int a[10],n,t1,t2,i,k=0;
	cout<<"n:=";
	  cin>>n;
            for(i=0; i<n; i++)
	 cin>>a[i];
	

         for(i=0; i<n; i++)
          if(a[i]==0)
          {
	t1=i;
	i=n;
	}

	for(i=t1+1; i<n; i++)
            if(a[i]==0)
	{
	  t2=i;
	  i=n;
	}

        for(i=t1+1; i<t2; i++)
        {
	 cout<< a[i] <<"  ";
	 k++;
        }

        cout<<endl;
       cout<<"kol-vo: "<< k <<endl;
       return 0;
}
ivan89 вне форума
Старый 19.12.2008, 13:24   #7
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию

Спасибо за помощь.
Kventin вне форума
Старый 20.12.2008, 02:04   #8
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Иван89, зачем же ты так... 2 цикла...(даже 3) Сделал бы точно так же, как и в первом, т.е. с флагом... Сначала флаг 0, как только встречается первый нулевой элемент -> флаг 1... Далее, если встречается нулевой элемент и флаг == 1, то вывести количество... вот и все...
P.S. не надо забыть подсчитывать количество когда флаг == 1

P.P.S. вместо строчки
Код:
i=n;
нужно писать
Код:
break;

Последний раз редактировалось StarWorm; 20.12.2008 в 02:06.
StarWorm вне форума
Старый 21.12.2008, 17:14   #9
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию Некорректно работает

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

Код:
#include <conio.h>0
#include <iostream>
using namespace std;
void inpmas(float *m,int k);
void dispmas(float mas[],int k);
void poisk(float mas[],int k);
int main()
{
     int n;
	 float mas[6];
     cout<<"Vvedeti n:";
     cin>>n;
     cout<<"\n";

     inpmas(mas,n);
     cout<<"Massiv F:\n";
     dispmas(mas,n);
     poisk(mas,n);
dispmas(mas,n);
     return 0;
}
//======Использованные процедуры========
//ввод элементов массива
void inpmas(float *m,int k)
{
     for(int i=0;i<k;i++)
     {
          cout<<"mas["<<i+1<<"]=";
          cin>>m[i];     
     }
}
//вывод элементов массива
void dispmas(float m[],int k)
{
     for(int i=0;i<k;i++)
	 cout<<"mas["<<i+1<<"]="<<m[i]<<"\n";
}
//преобразование массива
void poisk(float *m,int k)
{
     int in,ik,e,kol;
     for(int i=0;i<k;i++)
     {
		  if(m[i]=0)
          {
               e++;
               in=i;
			   if(e==2) ik=i;
          }
}     kol=(ik-in)-1;
     
     cout<<"Kolichestvo elementov= "<<kol;
}

Последний раз редактировалось Kventin; 21.12.2008 в 21:50.
Kventin вне форума
Старый 21.12.2008, 23:46   #10
Kventin
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию

Ой, ошибся. Текст к этой задаче
В массиве A(n) найдите число элементов между первым и вторым нулевыми элементами. Данные для ввода n=7, A(1.0.2.3.4.0.0)
Kventin вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести bmp изображение на экран?? lexuss Паскаль, Turbo Pascal, PascalABC.NET 12 09.04.2011 00:02
Как вывести на экран двумерный массив случайным образом? Stager Общие вопросы C/C++ 5 07.01.2009 20:53
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23
как вывести число с ограниченным количеством цифр после запятой? delphi Ensoph Помощь студентам 1 02.10.2007 07:50