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

указатель - C++

Восстановить пароль Регистрация
 
mikador
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 55
13.11.2011, 20:56     указатель #1
ввод:
(1<=n<=100)
вводим n

вывод:
Сумма элементов до максимума...

Input Output
8 1 9 1 -1 -1 9 1 1 0

плиз помогите , псевдо напишите или сам код ...и задачу надо с указателом решить

Добавлено через 15 минут
ввод 8

Добавлено через 37 секунд
1 1 9 1 -1 9 1

Добавлено через 10 секунд
вывод 10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 20:56     указатель
Посмотрите здесь:

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
указатель на указатель или присваивание объекта C++
Указатель или ссылка на указатель. В чем разница? C++
C++ Преобразовать указатель одного типа в указатель другого.
Передать в неуправляемую функцию указатель на указатель C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
13.11.2011, 21:04     указатель #2
Цитата Сообщение от mikador Посмотреть сообщение
Сумма элементов до максимума...
Уточните пожалуйста. Максимума чего?
mikador
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 55
13.11.2011, 21:05  [ТС]     указатель #3
написать функцию, которые находят сумму положительных элементов в массиве, которые расположены перед максимальным элементом.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
13.11.2011, 21:39     указатель #4
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
#include <stdio.h>
 
int eval_sum(int *array, int size) {
        int i;
        int *max = array;
        int *end = array+(size-1);
        for (i = 1; i < size; i++) {
                if (*(array+i) > *max) {
                        max = array+i;
                }
        }
        printf("max: %d\n", *max);
        int sum = 0;
 
        do {
                max++;
                if (*max > 0) 
                {                       
                        sum += *max;
                }
        } while (end - max);
        
        return sum;
}
 
main() {
        int array[10] = {3,2,4,3,3,1,5,7,6,5};
 
        int sum = eval_sum(array, 10);
        
        printf("sum: %d", sum);
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.11.2011, 06:41     указатель #5
Xind, несколько замечаний по коду:
1) пиши int main(void) (инфа)
2) в конце main() ставь return 0; (это хороший стиль)
3) если придерживаешься C89, объявляй переменные до первого оператора (13 строка)
4) printf() в main() не содержит перевод строки, считай, его там нет
Yandex
Объявления
14.11.2011, 06:41     указатель
Ответ Создать тему
Опции темы

Текущее время: 15:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru