IPB

Здравствуйте, гость ( Вход | Регистрация )

> Массивы,Паскаль, максимальное количество его одинаковых элементов.
Астасья
сообщение 12.5.2011, 17:56
Сообщение #1


Новичок
*

Группа: Продвинутые
Сообщений: 9
Регистрация: 21.4.2011
Город: Сыктывкар
Учебное заведение: СГУ
Вы: студент



Задание
Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов.

не получается (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif)
вот что я написала


program masiv;uses crt;
const n=10;
var a:array [1..n] of integer;
i,s,p,f:integer;
begin {заполняем массив }
s:=0;
for i:=1 to n do
begin
a[i]:=random(9);
write(a[i]:2);
end; writeln;
while f=0 do
begin {сортируем по возрастанию}
f:=1;
for i:=1 to (n-1) do
if a[i]>a[i+1] then
begin
p:=a[i];
a[i]:=a[i+1];
a[i+1]:=p;
f:=0;
end;end;
for i:=1 to n do
begin {выводим отсартированый массив}
write(a[i]:2);
end;writeln;
begin {что-то не понятное}
for i:=1 to (n-1) do
if a[i]=a[i+1] then
s:=s+1;
end;
writeln('максимальное количество одинаковых элементов.=',s);
end.
?????????????????????????ПОМОГИТЕ!!!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов(1 - 6)
Vahappaday
сообщение 13.5.2011, 9:22
Сообщение #2


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



В конце забыли обнулять s, да и максимальное не запоминали. Выводилось количество повторяющихся чисел вообще. Исправленный вариант ниже:
Код
program masiv;
uses crt;
const n=10;
var a:array [1..n] of integer;
i,s,p,f,smax:integer;
begin {заполняем массив }
    s:=1;
    for i:=1 to n do
    begin
        a[i]:=random(9);
        write(a[i]:2);
    end;
    writeln;
    while f=0 do
    begin {сортируем по возрастанию}
        f:=1;
        for i:=1 to (n-1) do
        if a[i]>a[i+1] then
        begin
            p:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=p;
            f:=0;
        end;
    end;
    for i:=1 to n do
    begin {выводим отсартированый массив}
        write(a[i]:2);
    end;
    writeln;
    smax:=0;
    begin {что-то не понятное}
        for i:=1 to (n-1) do
        if a[i]=a[i+1] then
                s:=s+1
                else s:=1;
        if s>smax then
        smax:=s;
    end;
    writeln('максимальное количество одинаковых элементов.=',smax);
end.

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Астасья
сообщение 14.5.2011, 15:18
Сообщение #3


Новичок
*

Группа: Продвинутые
Сообщений: 9
Регистрация: 21.4.2011
Город: Сыктывкар
Учебное заведение: СГУ
Вы: студент



это тоже неверно (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sad.gif)
может кто-нибудь ещё знает...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 15.5.2011, 17:50
Сообщение #4


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



А что неверно? Покажите данные, которые генерятся, и какой выводит ответ, помогу подправить, раз уж сам накосячил.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Julia
сообщение 16.5.2011, 13:02
Сообщение #5


Ассистент
****

Группа: Julia
Сообщений: 593
Регистрация: 23.2.2007
Город: Улан-Удэ
Учебное заведение: БГУ
Вы: преподаватель



smax:=0;
for i:=1 to (n-1) do
if a[i]=a[i+1] then
s:=s+1
else begin
if s>smax then
smax:=s;
s:=1;
end;
writeln('максимальное количество одинаковых элементов.=',smax);
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 17.5.2011, 18:38
Сообщение #6


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Неа, ибо 1 1 2 2 1 1 даст 2, а нужно 4
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergio Ramos
сообщение 17.5.2011, 19:06
Сообщение #7


Студент
**

Группа: Продвинутые
Сообщений: 86
Регистрация: 16.11.2010
Город: Saratov



Если нет ограничения на время, то в лоб прогнать все элементы и найти тот, у которого больше всех совпадений

Код
#include "iostream"

using namespace std;

int main () {
    int n,s=0,k=0;
    cin >> n;
    int *a=new int[n]; //объявили динамический массив
    
    for (int i=0;i<n;i++) cin >> a[i]; //ввод элементов

    for (int i=0;i<n;i++)  {
        for (int j=0;j<n;j++) if (a[i]==a[j]) k++;
        if (k>s) s=k;
    k=0;}

cout << s;

return 0;}


Под паскаль сами переделайте, давно с ним не сталкивался
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 23:40

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru