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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2008, 14:49   #1
Sashok=)
Новичок
Джуниор
 
Регистрация: 27.10.2008
Сообщений: 2
Восклицание 2 задачи в C++Builder6

Добрый день уважаемые программисты Прошу помочь мне, новичку в решении 2-х задач на лабу по С++. Вот собственно задачи:

1) В одномерном массиве найти наибольшую по длине повторяющуюся последовательность символов.
2) Найти количество различных элементов двумерного массива.

Насчёт второй задачи были идеи, которые я воплотил в программе. Может кто подскажет более удачный вариант или же оплошности в моём коде:

#include <iostream>
#include <conio>
using namespace std;

int main(){
const n=3, m=3;
int a[n][m], b[n*m], k=0, i, j, h=0;
cout << "\n Input array: ";
for(i=0; i<n; i++)
for(j=0; j<m; j++)
cin >> a[i][j];
for(i=0; i<n; i++)
for(j=0; j<m; j++)
b[h++]=a[i][j];
/*for(j=0; j<(n*m); j++)
cout << b[j] << ' ';
cout << endl;*/
for(i=(n*m)-1; i>=1; i--)
for(j=0; j<i; j++)
if(b[j]>b[j+1])
{
h=b[j];
b[j]=b[j+1];
b[j+1]=h;
}
/*for(j=0; j<(n*m); j++)
cout << b[j] << ' ';
cout << endl;*/
for(j=0; j<(n*m); j++)
if(b[j]!=b[j+1])
k++;
cout << "\n Number of nonrecurrent elements: " << k;
getch();
return 0;
}

Заранее спасибо
Sashok=) вне форума Ответить с цитированием
Старый 31.10.2008, 16:32   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

вот первая:

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
 char s[255];
 scanf("%s",&s);
 int MaxS=0;
 int MaxCount=1;
 int MaxCountOfS=0;
 int len=strlen(s);
 for(int i=0;i<len-1;i++)
 {
  int Count=1;
  int CountOfS=255;
  for(int j=i+1;j<len;j++)
   if(s[j]==s[i])
   {
    Count++;
    int TempCount=0;
    while(s[j+TempCount]==s[i+TempCount])
    {TempCount++;}
    if(TempCount<CountOfS)
     CountOfS=TempCount;
   }
  if(Count>MaxCount)
  {
   MaxCount=Count;
   MaxS=i;
   MaxCountOfS=CountOfS;
  }
 }
 char Result[255]="";
 strncpy(Result,s+MaxS,MaxCountOfS);
 printf("%s\n",Result);
 getch();
 return 0;
}
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 31.10.2008, 23:15   #3
Sashok=)
Новичок
Джуниор
 
Регистрация: 27.10.2008
Сообщений: 2
По умолчанию

всем спасибо, задачи все решены
Sashok=) вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи Денискин Помощь студентам 5 27.09.2008 08:46
3 задачи на си++ $ Sobol Фриланс 2 08.09.2008 23:40
4 задачи на С++ marsius Фриланс 2 19.04.2008 22:14
Задачи Настена Помощь студентам 1 18.12.2007 06:45
2 Задачи Stan Помощь студентам 4 02.06.2007 19:47