Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Truba
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 21
#1

Найти сумму чисел, не делящихся на 2 и 11

27.09.2011, 22:18. Просмотров 885. Ответов 4
Метки нет (Все метки)

Дана последовательность натуральных чисел {Aj} не более 20 элементов. Найти сумму чисел, не делящихся на 2 и 11, наибольшее из таких чисел, и номер этого числа в последовательности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 22:18
Ответы с готовыми решениями:

Найти произведение чисел, делящихся нацело на 3 и не делящихся нацело на 5
Помогите пожалуйста Ввести 2 числа если оба числа делятся нацело на 3. Найти...

Вычислить сумму чисел, нацело делящихся на 5
С помощью цикла while разработать программу, которая будет вычислять сумму...

Вычислить сумму чисел нацело делящихся на 5
С помощью цикла while разработать программу, которая будет вычислять сумму...

Вычислить сумму первых N натуральных чисел, делящихся на К
Вычислить: a) сумму первых N натуральных чисел, делящихся на К; b)...

Заданная последовательность целых чисел. Найти количество чисел, делящихся на 3 и 5 без остатка
Здравствуйте, Уважаемые. Очень срочно нужна Ваша помощь, в решении данной...

4
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 22:43 #2
Берете цикл. Прогоняете его по массиву. Добавляете условие на суммирование чисел не кратных 2 и 11. Добавляете условие на нахождение наибольшего элемента. Запоминаете его позицию. Выводите все это.
Вопрос: в чем была проблема?
0
Truba
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 21
27.09.2011, 22:51  [ТС] #3
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main ()
{
int mas[20],n,t,i,max
clrscr();
randomize();
printf("vvedite kol-vo elementov massiva (ne bolee 20)\n");
scanf("%d", & n);
while ((n>20)| (n<1))
{
printf("mi  vveli nedopustimie znachenie!\n vvedite kolichestvo elemetov massiva( ne bolee 30)\n");
scanf("%d", & n);
}
printf("esli wi hotite vvesti elementi massiva vruchnuy-vvedite '1'\n");
printf("esli sluchainim obrazom-vvedite '2'\n");
scanf("%d", & t);
if (t==1)
{
printf (" vvedite elementy massiva: \n");
 
if (t==2)
{
for(i=0;i<=n-1;i++)
{
mas[i]=random(20);
printf("%4d",mas[i]);
}
}
max=32767;
for(i=0,k=0,s=-1;i<=n-1;i++)
if(mas[i] ! / 2 && 11)
{
k=k+mas[i];
if (max>mas[i])
{
max=mas[i];
s=i+1;
}
}
printf("\n Summa chisel ne delychihsuy na 2 i 11: %d \n",k);
printf("naibolshee iz takih chisel: %d, ego nomer: %d", max,s);
}
ну вот что-то я запуталась
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 23:14 #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <conio.h>
 
main()
{
    srand(time(0));
    int *arr, n, i;
    int sum = 0, max = 0, pos = 0;
 
    scanf("%d", &n);
    arr = (int) malloc (sizeof(int) * n);
    for(i = 0; i < n; ++i)
    {
        arr[i] = rand() % 20;
        printf("%d ", arr[i]);
        if((arr[i] % 2 != 0) && (arr[i] % 11 != 0))
        {
            sum += arr[i];
            if(arr[i] > max)
            {
                max = arr[i];
                pos = i;
            }
        }
    }
    printf("\nsum = %d, max = %d, pos = %d", sum, max, pos);
    getch();
}
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.09.2011, 10:14 #5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

soon, поскольку 0 - не натуральное число, то лучше сделать
C
1
 arr[i] = rand() % 20 + 1;
Также элементов с заданным условием тоже может не быть, поэтому чтобы переменная pos не возвращала 0 (первый элемент массива), лучше ее отрицательным значением инициализировать. Как то так теперь ваша программа выглядит:

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <conio.h>
 
int main()
{
        int *arr, n, i;
        int sum = 0, max = 0, pos = -1;
        srand(time(NULL));
        scanf("%d", &n);
        arr = (int) malloc (sizeof(int) * n);
        for(i = 0; i < n; ++i)
        {
                arr[i] = rand() % 20 + 1;
                printf("%d ", arr[i]);
                if(arr[i] % 2 && arr[i] % 11)
                {
                        sum += arr[i];
                        if(arr[i] > max)
                        {
                                max = arr[i];
                                pos = i;
                        }
                }
        }
        printf("\nsum = %d, max = %d, pos = %d", sum, max, pos);
        getch();
}
1
28.09.2011, 10:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2011, 10:14

Пофиксите баг? Найти произведение чисел последовательности, не делящихся на 5, наибольшее из таких чисел, и его номер
Привет, форумчане! Помогите отладить программу? Что должна делать: &gt;Дана...

Циклы: Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5
Завтра зачет не успеваю сделать занимаюсь prologom помогите кому не сложно!!! ...

Вычислять сумму чисел, нацело делящихся на 5. Цикл while задать от 0 до введенного с клавиатуры числа
С помощью цикла while разработать программу, которая будет вычислять сумму...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru