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

Рассмотреть отрезки последовательности, состоящие из полных квадратов

11.07.2018, 16:30. Показов 1104. Ответов 1

Author24 — интернет-сервис помощи студентам
Рассмотреть отрезки последовательности, состоящие из полных квадратов. получить наибольшую из длин рассматриваемых отрезков.


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void ent(int *arrayName, int arraySize)
{
    int i;
 
 
    for (int i = 0; i < arraySize; i++)
    {
        printf("a[%i] = ", i);
        scanf("%i", &arrayName[i]);
    }
}
 
void proc(int *arrayName, int arraySize) {
    int i,k = 0, max = 0;
    int flag = 0;
    for (i = 0; i < arraySize; ++i)
    {
        if ((sqrt(arrayName[i])) == (round((sqrt(arrayName[i])))))
            {
                printf("%d - full square \n", arrayName[i]);
                k++;
                flag = 1;
            }
        else
            {
                if (flag == 1)
                    k = 1;
 
            }
        if (k>max)
            max = k;
    }
    printf("Max otrezok = %d \n", max);
}
 
void printArray(int *arrayName, int arraySize) {
    int i;
    for (i = 0; i < arraySize; ++i) {
        printf("%d ", arrayName[i]);
    }
}
 
void main()
{   int i;
    int n;//
    int squar = 0;
 
    printf("Size Massive: ");
    scanf("%d", &n);
 
    int Arr[n];
    ent(Arr, n);
 
    printf("Array: ");
    printArray(Arr, n);
 
    printf("\n");
 
    proc(Arr,n);
 
 
 
    system("pause");
}

Данная процедура

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void proc(int *arrayName, int arraySize) {
    int i,k = 0, max = 0;
    int flag = 0;
    for (i = 0; i < arraySize; ++i)
    {
        if ((sqrt(arrayName[i])) == (round((sqrt(arrayName[i])))))
            {
                printf("%d - full square \n", arrayName[i]);
                k++;
                flag = 1;
            }
        else
            {
                if (flag == 1)
                    k = 1;
 
            }
        if (k>max)
            max = k;
    }
    printf("Max otrezok = %d \n", max);
}
работает не так, поскольку при массиве 1 2 1 2 1 он выводит 2, а не 1. Исправьте, пожалуйста.

Добавлено через 7 минут
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
void proc(int *arrayName, int arraySize) {
    int i,k = 0, max = 0;
    int flag = 0;
    for (i = 0; i < arraySize; ++i)
    {
        if ((sqrt(arrayName[i])) == (round((sqrt(arrayName[i])))))
            {
                printf("%d - full square \n", arrayName[i]);
                k++;
                if (i!=0)
                    {
                        if ((sqrt(arrayName[i-1])) == (round((sqrt(arrayName[i-1])))))
                            {
                                k++;
                            }
                        else k--;
                    }
 
 
            }
        if (k>max)
            max = k;
    }
    printf("Max otrezok = %d \n", max);
Сделал так, вроде работает. Можно это проще сделать?

Добавлено через 1 минуту
Ан нет, не работает

Добавлено через 26 минут
Решил. Всё просто оказалось, просто голова не варит.

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
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void ent(int *arrayName, int arraySize)
{
    int i;
 
 
    for (int i = 0; i < arraySize; i++)
    {
        printf("a[%i] = ", i);
        scanf("%i", &arrayName[i]);
    }
}
 
void proc(int *arrayName, int arraySize) {
    int i,k = 0, max = 0;
    int flag = 0;
    for (i = 0; i < arraySize; ++i)
    {
        if ((sqrt(arrayName[i])) == (round((sqrt(arrayName[i])))))
            {
                printf("%d - full square \n", arrayName[i]);
                k++;
            }
        else k = 0;
        if (k>max)
            max = k;
    }
    printf("Max otrezok = %d \n", max);
}
 
void printArray(int *arrayName, int arraySize) {
    int i;
    for (i = 0; i < arraySize; ++i) {
        printf("%d ", arrayName[i]);
    }
}
 
void main()
{   int i;
    int n;//
    int squar = 0;
 
    printf("Size Massive: ");
    scanf("%d", &n);
 
    int Arr[n];
    ent(Arr, n);
 
    printf("Array: ");
    printArray(Arr, n);
 
    printf("\n");
 
    proc(Arr,n);
 
 
 
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2018, 16:30
Ответы с готовыми решениями:

Рассмотреть отрезки, идущих подряд членов последовательности, состоящие из полных квадратов. Получить наибольшую из длин рассматриваемых отрезков
Даны натуральное число n, целые числа a_1 ,…,a_n. Рассмотреть отрезки идущих подряд членов данной...

Рассмотреть отрезки последовательности, которые состоят из полных квадратов
Задано натуральное n, целые числа a1,a2,...,an. Рассмотреть отрезки последовательности a1,a2,...,an...

Определить, есть ли среди заданной последовательности чисел отрезки, состоящие из полных квадратов
Дано натуральное число n и целые числа a1,a2,…an. Написать программу, определяющую, есть ли среди...

Рассмотреть отрезки последовательности,состоящие из одинаковых чисел
Доброе утро форум беда пришла не одна.:cry: Не знаю как бороться с этим :-| 2. Дан массив целых...

1
Нарушил, 10 блоков,акка
72 / 72 / 11
Регистрация: 19.07.2013
Сообщений: 250
20.07.2018, 20:41 2
Последовательность, подрузумевает порядок , вы поняли его ? Написать по известной формуле не проблема, проблема что вы понимаетете под полным квадратом? он равнасторонен, он куб? гиперкуб?)

Добавлено через 5 минут
Пересечение множеств квадратов? Автор ответь?

Добавлено через 55 секунд
Ты скачал что-то и не знаешь что?))
0
20.07.2018, 20:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2018, 20:41
Помогаю со студенческими работами здесь

Рассмотреть отрезки последовательности состоящие из степеней пятерки
Дано натуральное число n, целые числа a1, ..., an. Рассмотреть отрезки последовательности a1, ...,...

Рассмотреть отрезки последовательности, состоящие из степеней пятерки
Здравствуйте, нужно написать код с помощью функции на с++. Вот условие: Даны натуральное число n,...

Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки
Добрый день, у меня вот есть код на паскале, нужно перевести на с++. Не очень понятно, что там в...

Рассмотреть отрезки последовательности
Даны натуральное число n, целые числа a1,...,an. Рассмотреть отрезки последовательности...


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

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