Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
1

В начале массива записаны несколько равных между собой элементов

12.10.2021, 20:15. Показов 2150. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В начале массива записаны несколько равных между собой элементов. Определить количество таких элементов и вывести все элементы, следующие за последним из них. Рассмотреть возможность того, что весь массив заполнен одинаковыми элементами. Условный оператор не использовать.Функции использовать нельзя.break и continue использовать нельзя.Надо написать на С.
Помогите написать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2021, 20:15
Ответы с готовыми решениями:

В начале массива записаны несколько равных между собой элементов. Определить количество таких элементов и напечатать все
в начале массива записаны несколько равных между собой элементов. Определить количество таких...

Обработка числовых последовательностей. Определить количество равных между собой элементов в начале последовательности
Обработка числовых последовательностей... Дана последовательность целых чисел а1, а2 .... а18, в...

Подсчитать количество пар рядом расположенных и равных между собой элементов массива
Помогите пожалуйста с задачей(( Условие: Даны три массива целых чисел А(13), В(17), С(11)....

Из каждой группы равных между собой элементов массива нужно оставить только один
Дан целочисленный массив а0, а1, а2,…, аn-1, среди элементов которого могут быть равные. Из каждой...

Количество равных между собой элементов
Дана последовательность целых чисел а1,а2,...,а18, в начале которой записаны несколько равных между...

16
29 / 21 / 8
Регистрация: 11.10.2021
Сообщений: 122
12.10.2021, 20:47 2
Цитата Сообщение от proxy123 Посмотреть сообщение
равных между собой элементов
Что значит равных? Равных по размеру, по значению или все вместе?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stddef.h>
 
...
 
int array[...] = { ... };
size_t array_size = ...
 
int value = array[0];
size_t count = 1;
 
for (size_t i = 1; (i < array_size) && (array[i] == value); i++, count++);
 
for (size_t i = count - 1; i < array_size; i++)
  printf("%d ", array[i]); 
 
...
Примерно так будет код выглядить, не проверял, но вроде работать должен.
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 20:56  [ТС] 3
Цитата Сообщение от black-icarus Посмотреть сообщение
Что значит равных? Равных по размеру, по значению или все вместе?
как я думаю 'равных' скорее как 1 = 1
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 21:12 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#define N 10
 
int main(void)
{
    int mas[N] = {1,1, 2, 3, 4, 5, 6, 7, 8, 9};
    int count=0, i=N;
    while(--i > 1)
    {
        count = (mas[i]-mas[i-1] != 0) ? count+1 : count+0;
    }
    printf("Elements: %d\n", count);
    for(i=N-count; i<N; i++)
        printf("%d ", mas[i]);
    puts("");
 
    return 0;
}
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 21:53  [ТС] 5
Цитата Сообщение от мама Стифлера Посмотреть сообщение
#include <stdio.h>
#define N 10
int main(void)
{
    int mas[N] = {1,1, 2, 3, 4, 5, 6, 7, 8, 9};
    int count=0, i=N;
    while(--i > 1)
    {
        count = (mas[i]-mas[i-1] != 0) ? count+1 : count+0;
    }
    printf("Elements: %d\n", count);
    for(i=N-count; i<N; i++)
        printf("%d ", mas[i]);
    puts("");
return 0;
}
привет , снова ты мне помогаешь ))) Почему когда все элементы в массиве одинаковые программа выводит 0
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 22:04 6
proxy123, в строке#10 условие потому что стоит:
Если разница чисел не равна 0, то числа разные и прибавляется +1 к счетчику, иначе +0 к счетчику, вот и все.
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 22:19  [ТС] 7
Цитата Сообщение от proxy123 Посмотреть сообщение
мама Стифлера
но ведь одинаковые элементы в массиве должны складываться
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 22:25 8
Цитата Сообщение от proxy123 Посмотреть сообщение
но ведь одинаковые элементы в массиве должны складываться
точно, я как всегда, чуть не так понял ))

Добавлено через 1 минуту
12 строку исправить на
C
1
printf("Elements: %d\n", N-count);
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 22:35  [ТС] 9
Цитата Сообщение от мама Стифлера Посмотреть сообщение
printf("Elements: %d\n", N-count);
так она выводит 9 элементов не зависимо от их повторений
для примера
C
1
int mas[N] = {1,1,1};
вывод
Elements: 9
0
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 22:42 10
Цитата Сообщение от proxy123 Посмотреть сообщение
так она выводит 9 элементов не зависимо от их повторений
так размер массива задается 2 строкой, переменная N. но можно сделать без нее, по твоему принципу

Добавлено через 4 минуты
вот тогда без размера
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    int mas[] = {-1,-1, 2, 3, 4, 5, 6, 7, 8, 9};
    int siz = sizeof(mas)/sizeof(mas[0]);
    int count=0, i=siz;
 
    while(--i > 1)
        count = (mas[i]-mas[i-1] != 0) ? count+1 : count+0;
    printf("Double elements: %d\n", siz-count);
 
    for(i=siz-count; i<siz; i++)
        printf("%d ", mas[i]);
    puts("");
 
    return 0;
}
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 22:47  [ТС] 11
Цитата Сообщение от proxy123 Посмотреть сообщение
мама Стифлера
А можно я в пятницу схожу уточню насчет задачи и скажу что да как и мы продолжим
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 22:49 12
proxy123, меня спрашиваешь можно, или нет? Ты препода спрашивай, и пиши на форум, а народ тут есть всегда чтоб ответить.
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
12.10.2021, 23:06  [ТС] 13
Цитата Сообщение от proxy123 Посмотреть сообщение
мама Стифлера
а что делает ? в 10 строке
C
1
count = (mas[i]-mas[i-1] != 0) ? count+1 : count+0;
вместо операторов?
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
12.10.2021, 23:16 14
proxy123, вот почитайте про это
А строку#10 я расписал выше пост#6
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
15.10.2021, 22:15  [ТС] 15
Цитата Сообщение от proxy123 Посмотреть сообщение
мама Стифлера
нужно чтоб когда в массиве все элементы равны ,выводилась ошибка , и когда в массиве не было равных элементов , тоже выводилась ошибка.И вывод результата нужно сделать в одну строчку.
0
из племени тумба-юбма
2482 / 1804 / 418
Регистрация: 29.11.2015
Сообщений: 8,755
Записей в блоге: 15
16.10.2021, 01:55 16
Лучший ответ Сообщение было отмечено proxy123 как решение

Решение

вариант 1
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
int main(void)
{
    int mas[] = {-1,-1,-1, 3, 4, 5, 6, 7, 8, 9};
//    int mas[] = {1,1, 1, 1, 1, 1, 1, 1, 1, 1};
//    int mas[] = {1,2, 3, 4, 5,6, 7, 8, 9, 0};
    int siz = sizeof(mas)/sizeof(mas[0]);
    int i, count=siz;
 
    for(i=siz-1; i>0; i--)
        count = (mas[i] != mas[i-1]) ? count-1 : count-0;
 
    while(siz-count==0 || siz-count+1==siz)
    {
        puts("ERR");
        return 1;
    }
 
    printf("Double elements %d pcs, others: ", count);
    for(i=count; i<siz; i++)
        printf("%d ", mas[i]);
    puts("");
    return 0;
}

вариант 2
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
 
int main(void)
{
    int mas[] = {-1,-1,-1, 3, 4, 5, 6, 7, 8, 9};
//    int mas[] = {1,1, 1, 1, 1, 1, 1, 1, 1, 1};
//    int mas[] = {1,2, 3, 4, 5,6, 7, 8, 9, 0};
    int siz = sizeof(mas)/sizeof(mas[0]);
    int i, count=siz;
 
    for(i=siz-1; i>0; i--)
        count = (mas[i] != mas[i-1]) ? count-1 : count-0;
 
    switch((siz-count==0 || siz-count+1==siz) ? 0 : count)
    {
        case 0:
            puts("ERR");
            return 1;
    
        default: 
            printf("Double elements %d pcs, others: ", count);
            for(i=count; i<siz; i++)
                printf("%d ", mas[i]);
            puts("");
    }
    return 0;
}
0
1 / 1 / 0
Регистрация: 09.10.2021
Сообщений: 27
17.10.2021, 19:26  [ТС] 17
Цитата Сообщение от proxy123 Посмотреть сообщение
мама Стифлера
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
    int mas[] = {2,2,2,4,56,2,7,2};
    int siz = sizeof(mas)/sizeof(mas[0]);
    int i, count=siz;
    for(i=siz-1; i>0; i--)
        count = (mas[i] != mas[i-1]) ? count-1 : count-0;
    while(siz-count==0 || siz-count+1==siz)
    {
        puts("error input");
        return 1;
    }
    printf("%d ", count);
    for(i=count; i<siz; i++)
        printf("%d ", mas[i]);
    puts("");
    return 0;
}
1.Размер массива должен быть известен при компиляции соответствующей строки в программе (чтобы выделить память). Программа не компилируется.
2.Нельзя смешивать операции и описания переменных
3.В любой функции (и в main() тоже) должен быть только один return;
0
17.10.2021, 19:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2021, 19:26
Помогаю со студенческими работами здесь

Определить количество равных между собой элементов последовательности
Доброго времени суток, уважаемые программисты. Хотел бы попросить Вас о помощи в решении программ...

Вывести индексы равных между собой элементов матрицы
Двухмерный массив из 3 строк и 4 столбцов заполнить числовыми значениями Известно, что среди его...

Подсчитать количество различных чисел массива, не равных между собой
1) Дан массив с , подсчитать количество различных чисел, не равных между собой

В неубывающей последовательности найти количество равных между собой элементов
В массиве из 20 элементов числа образуют неубывающую последователь-ность. Несколько элементов,...

Проверить наличие в нем хотя бы двух равных между собой элементов
Здраствуйте! Задано массив A ( n ) . Проверить наличие в нем хотя бы двух равных между собой...

Создать рисунок, представляющий собой множество равных между собой квадратов
Создать рисунок в Windows Forms, представляющий собой множество равных между собой квадратов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru