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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2007, 15:44   #11
PuzzleC
Пользователь
 
Регистрация: 01.11.2007
Сообщений: 33
По умолчанию

Так тебе нельзя массивы использовать, в какой памяти ты хранишь слова?
PuzzleC вне форума Ответить с цитированием
Старый 17.12.2007, 21:20   #12
furian
 
Регистрация: 20.06.2007
Сообщений: 9
По умолчанию

Придется наверно все таки с массивами делать

Последний раз редактировалось furian; 18.12.2007 в 12:51.
furian вне форума Ответить с цитированием
Старый 18.12.2007, 23:11   #13
furian
 
Регистрация: 20.06.2007
Сообщений: 9
По умолчанию

Вот написал программу, должна работать но выдаёт ошибки..никак не пойму как сделать, подскажите пожалуйста. Вот программа

Код:
#include <iostream>
#include <cstring>
#include <windows.h>
#include <cmath>
using namespace std;
char slovar[1000][1000];
char bufsl[1000];
int T[1000];
int Y[1000];
char result[1000];
int count=0;
int l=0, r=0;
bool verif(char *Str1, char *Str2)   
{  
   bool Yes = true;  
   if(Str1 == NULL)  
   return false;  
   if(Str2 == NULL)  
   return false;  
 
   if(strlen(Str1)!= strlen(Str2))  
   return false;  
   else  
   {  
      for(int i = 0; i<strlen(Str1); i++)  
      {  
         if(Str1[i]!= Str2[i])  
         Yes = false;  
      }   
} 
}
inline bool IsAlpha(char c)
{
     return ('A'<=c)&&(c<='Z')||('a'<=c)&&(c<='z');
}
void Words(char* s)
{
     int i=0, n=0, j=0, b=0, l=0;
      while(s[i])
     {
          b=i;
          while (s[b]!=0&&!IsAlpha(s[b])) b++;
          if (s[b])
          {
               i=b+1;
               while (IsAlpha(s[i])) i++;
               strncpy_s(slovar[count],sizeof(slovar[count]), s+b,i-b); count++;
           }
          i++;
     }
}





void perest(int k, int m)
{   char t;
    
     if (k==1) 
        { 
         for (int j=0;j<=count;j++) if (verif(bufsl,slovar[j])==true) {T[l]=j; l++;} 
         if r<l {r=l; 
                  for(int g=0; g<=l; g++) Y[g]=T[g]; 
                     int v=0;
                   while (bufsl[v]!='\0') do { result[v]=bufsl[v]; v++;}
        }

     perest(k-1, m);
     for (int i=0;i<k-1;i++)
     {
          t=bufsl[i];
                  bufsl[i]=bufsl[k-1];
                  bufsl[k-1]=t;
                  perest(k-1, m);
          t=bufsl[i];
                  bufsl[i]=bufsl[k-1];
                  bufsl[k-1]=t;
     }
}





int main()
{ 
  char s[1000];
  cin.getline(s, 999);
  Words(s);
  int v=0;
  for(int k=0; k<=count; k++)
  {
     while (slovar[k][v]!='\0') do { bufsl[v]=slovar[k][v]; v++;}
      perest(v,k);

  }
  cout<<result;
  for(int f=0; f<r; f++) cout<<slovar[Y[f]]<<" ";
int g;
cin>>g;
}
Модератор: Испоьзуйте тег <CODE> что бы ваши посты были более красивы и читабельны.

Последний раз редактировалось merax; 20.12.2007 в 07:24.
furian вне форума Ответить с цитированием
Старый 18.12.2007, 23:17   #14
1ntro
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 28
По умолчанию

ты б хоть ошибки обозначил что ли х_Х
1ntro вне форума Ответить с цитированием
Старый 18.12.2007, 23:18   #15
1ntro
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 28
По умолчанию

Цитата:
using namespace std;
char slovar[1000][1000];
char bufsl[1000];
int T[1000];
int Y[1000];
char result[1000];
int count=0;
int l=0, r=0;
bool verif(char *Str1, char *Str2)
{
bool Yes = true;
if(Str1 == NULL)
return false;
if(Str2 == NULL)
return false;

if(strlen(Str1)!= strlen(Str2))
return false;
else
{
for(int i = 0; i<strlen(Str1); i++)
{
if(Str1[i]!= Str2[i])
Yes = false;
}
}
}
inline bool IsAlpha(char c)
{
return ('A'<=c)&&(c<='Z')||('a'<=c)&&(c<=' z');
}
void Words(char* s)
{
int i=0, n=0, j=0, b=0, l=0;
while(s[i])
{
b=i;
while (s[b]!=0&&!IsAlpha(s[b])) b++;
if (s[b])
{
i=b+1;
while (IsAlpha(s[i])) i++;
strncpy_s(slovar[count],sizeof(slovar[count]), s+b,i-b); count++;
}
i++;
}
}
Где начало функции то? х_Х Или ты там Дефайн делать хочешь?
1ntro вне форума Ответить с цитированием
Старый 19.12.2007, 20:15   #16
furian
 
Регистрация: 20.06.2007
Сообщений: 9
По умолчанию

Код:
#include <iostream>
#include <cstring>
#include <windows.h>
#include <cmath>
using namespace std;
char slovar[100][100];
char bufsl[100];
int T[100];
int Y[100];
char result[100];
int count=0;
int l=0, r=0;



bool verif(char *Str1, char *Str2)   
{  
   bool Yes = true;  
   if(Str1 == NULL)  
   return false;  
   if(Str2 == NULL)  
   return false;  
 
   if(strlen(Str1)!= strlen(Str2))  
   return false;  
   else  
   {  
	   
      for(int i = 0; i<strlen(Str1); i++)  
      {  
         if(Str1[i]!= Str2[i]) 
			 return false;
      }   
	  return true;
} 
}
inline bool IsAlpha(char c)
{
     return ('A'<=c)&&(c<='Z')||('a'<=c)&&(c<='z');
}
void Words(char* s)
{
     int i=0, n=0, j=0, b=0, l=0;
      while(s[i])
     {
          b=i;
          while (s[b]!=0&&!IsAlpha(s[b])) b++;
          if (s[b])
          {
               i=b+1;
               while (IsAlpha(s[i])) i++;
               strncpy_s(slovar[count],sizeof(slovar[count]), s+b,i-b); count++;
           }
          i++;
     }
}





void perest(int k, int m)
{   char t;
    
     if (k==1) 
        { 
         for (int j=0;j<=count;j++) if (verif(bufsl,slovar[j])==true) {T[l]=j; l++;} 
         if (r<l) {r=l; 
                  for(int g=0; g<=l; g++) Y[g]=T[g]; 
                     int v=0;
                   while (bufsl[v]!='\0') { result[v]=bufsl[v]; v++;}
		          }
		 return;
	 }
	 


     perest(k-1, m);
     for (int i=0;i<k-1;i++)
     {
          t=bufsl[i];
                  bufsl[i]=bufsl[k-1];
                  bufsl[k-1]=t;
                  perest(k-1, m);
          t=bufsl[i];
                  bufsl[i]=bufsl[k-1];
                  bufsl[k-1]=t;
	 }
}






int main()
{ 
  char s[1000];
  cin.getline(s, 999);
  Words(s);
  int v=0;
  for(int k=0; k<=count; k++)
  {
     while (slovar[k][v]!='\0')  { bufsl[v]=slovar[k][v]; v++;}
      perest(v,k);

  }
  cout<<result;
  for(int f=0; f<r; f++) cout<<slovar[Y[f]]<<" ";
int g;
cin>>g;


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

Модератор: Испоьзуйте тег <CODE> что бы ваши посты были более красивы и читабельны.

Последний раз редактировалось merax; 20.12.2007 в 07:25.
furian вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Настена Помощь студентам 1 07.01.2008 23:47
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45