Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вывести сообщение о том, что все элементы в массиве равны - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ __declspec(property) и с чем его едят http://www.cyberforum.ru/cpp-beginners/thread349268.html
Что это такое и как это использовать? У меня задание в лабораторной по обычному с++, но вот такая штука имеет место быть. Насколько я понял это какие-то свойства, прикрученные ms но как они...
C++ Оставить в списке только первые вхождения одинаковых элементов В составе программы описать функцию, которая оставляет в списке только первые вхождения одинаковых элементов. Добавлено через 10 минут куку )))) http://www.cyberforum.ru/cpp-beginners/thread349242.html
описать функцию, которая заменяет все вхождения элемента C++
В составе программы описать функцию, которая заменяет в списке все вхождения элемента E1, значение которого введено с клавиатуры, на эле-мент E2, значение которого также введено с клавиатуры.
C++ Определить, является ли матрица магическим квадратом
Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. #include <stdio.h>...
C++ Запутался в флагах http://www.cyberforum.ru/cpp-beginners/thread349185.html
Запутался в флагах, переменная rez вычисляется некорректно. Подскажите, как избавиться от ошибки, а ещё лучше, показать правильный код программы :-#include <iostream.h> #include <iomanip.h>...
C++ Принадлежит ли точка фигуре Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами обозначены определяемые пользователем параметры рисунка. Координаты точки x и y и другие параметры... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9628 / 5576 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
08.09.2011, 18:28
Цитата Сообщение от Deviaphan Посмотреть сообщение
И, почему-то, ещё ни одного рекурсивного варианта не было.
По просьбам трудящихся
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#define count(arr) ( sizeof(arr) / sizeof(*(arr)) )
    
int * min_element(const int * arr, const size_t size){
    return ( size < 2 ) ? (int*)arr : ( *arr > *(arr + size - 1) ) ? min_element(arr + 1, size - 1) : min_element(arr, size - 1);
}
 
int sum(const int * arr, const size_t size){
    return ( size ) ? *arr + sum(arr + 1, size - 1) : 0;
}
 
void dump(const int * arr, const size_t size){
    if ( size ){
        printf("%d ", *arr);
        dump(arr + 1, size - 1);
    }
    else
        printf("\n");
}
 
int main(void){
    int a[] = { 3, 2, 5, 1, 4, 1 };
    int b[] = { 1, 2, 3, 4, 5 };
    int c[] = { 0, 0, 0 };
    
    int * f;
    
    printf("Array A: ");
    dump(a, count(a));
    if ( ( f = min_element(a, count(a)) ) == a )
        printf("Min element is the first in array or all elements are the same.\n");
    else
        printf("Sum of elements before min: %d\n", sum(a, f - a));
    
    printf("Array B: ");
    dump(b, count(b));
    if ( ( f = min_element(b, count(b)) ) == b )
        printf("Min element is the first in array or all elements are the same.\n");
    else
        printf("Sum of elements before min: %d\n", sum(b, f - b));
    
    printf("Array C: ");
    dump(c, count(c));
    if ( ( f = min_element(c, count(c)) ) == c )
        printf("Min element is the first in array or all elements are the same.\n");
    else
        printf("Sum of elements before min: %d\n", sum(c, f - c));
    
    return 0;
}
Кстати, в чём глубинный смысл определения того, что все элементы одинаковые? Нужно просто искать не минимальное значение в массиве, а позицию первого элемента с минимальным значением. Если он первый в массиве - складывать в любом случае нечего.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru