Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
196 / 8 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

Найти сумму трёх максимальных из этих чисел

04.01.2020, 09:56. Показов 593. Ответов 3
Метки нет (Все метки)

Дан массив из 10 чисел. Найти сумму трёх
максимальных из этих чисел.
Во как-то так:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CLS
INPUT “ “, n
RANDOMIZE TIMER
DIM a)n)
   FOR i= 1 TO n
     a(i) = INT(RND * 1000)
       PRINT A(i);
   NEXT: PRINT
       max1 = -1E+38
       max2 = -1E+38
       max3 = -1E+38
   FOR I = 1 TO n
     IF a(i) >= max1 THEN
       max3 = max2:
       max2 = max1:
       max1 = ai)
   ELSEIF a(i) >= max2 THEN
       max3 = max2:
       max2 = a(i)
   ELSEIF a(i) >= max3 THEN  max3 = a(i)
      END IF
   NEXT
PRINT max1 + max2 + max3
На выходе имеем:
QBasic/QuickBASIC
1
2
3
10
370  413  313  961  660  574  988  712  334  22
1949
И что за результат получили – 1949. Это что за сумма
Должно быть сумма 2661. Т. е. программа не работает
как надо. В чём дело?

Вот ещё один ответ от bormanta

Или просто сортируем и берём 3 первых:
Вот эта программа от 14.10.2018.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CLS
CONST n = 10,  k = 3
DIM a(n)
DATA 12, 16, 21, 25, 30, 34, 36, 42, 10, 15
   FOR i = 1 TO n
     READ a(i)
       PRINT a(i);
    NEXT: PRINT
DO
        t = n
        I = t: t = 1
   FOR j = 1 TO I – 1
    IF a(j + 1) > a(j) THEN SWAP a(j + 1), a(j)
       t = j
    END IF
   NEXT
LOOP UNTIL t = 1
    FOR I = 1 TO k
       s = s + a(i)
    NEXT
PRINT “ Сумма 3-х максимальных чисел: “; s
На выходе получили отказ.
Почему? В чём дело. И что за строка – DO (и без неё
тот же отказ)

И ещё одна программа от m-ch от 17.10.18:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CLS
CONST n = 1000, k = 100
DIM a(1 TO n) AS LONG, b(1 TO k)
DIM i AS LONG, j AS LONG, s AS LONG, m AS LONG, x AS LONG
RANDOMIZE 123
   FOR i= 1 TO n
    a(i) = INT(RND * 1000 + 1)
    NEXT i
‘test4
b(1) = a(1)
   FOR I = 2 TO n
      x = a(i)
     IF I > k THEN
       IF b(k) < x THEN m = k; GOSUB
После GOSUB выходит окошко, т. е. отказ?
QBasic/QuickBASIC
1
2
     Ожидается:  метка или номер строки
                <  OK  >     <   Справка  >
И что это за программы, которые не дают результатов.
Уж очень они мутные. Но можно довести их до
работающих состояний?
Хотя простой способ решения этой задачи – это
использование сортировки.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2020, 09:56
Ответы с готовыми решениями:

Найти сумму трёх максимальных из этих чисел
Дан массив из 10 чисел. Найти сумму трёх максимальных из этих чисел. CLS DIM A(10) FOR i = 1 TO...

Дан массив из 10 чисел. Найти сумму трёх максимальных из этих чисел
. Дан массив из 10 чисел. Найти сумму трёх максимальных из этих чисел. CLS DIM A(10) FOR i = 1...

Найти сумму трёх максимальных чисел в случайном массиве
Дан массив из 10 чисел. Найти сумму трёх максимальных из них. Вариант с тремя числами подряд:...

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

3
4798 / 1470 / 392
Регистрация: 25.04.2010
Сообщений: 4,148
Записей в блоге: 1
12.01.2020, 19:58 2
И ещё одна программа от m-ch
После GOSUB выходит окошко, т. е. отказ?
Ссылки на оригиналы крепи. Посмотрим где m-ch налажал.
А пока видно только, что перед GOSUB - точка с запятой, "кривая" ковычка в 9-й строке
и "левые" ковычки в последней строке первой проги.
0
Платежеспособный зверь
8750 / 4175 / 1606
Регистрация: 28.10.2009
Сообщений: 11,317
14.01.2020, 00:17 3
Копируйте программы внимательнее, у вас скобка пропущена:

Цитата Сообщение от Petro29 Посмотреть сообщение
max1 = ai)
а программа проверена и работает
0
6136 / 903 / 305
Регистрация: 25.02.2011
Сообщений: 1,288
Записей в блоге: 1
16.01.2020, 22:50 4
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Ссылки на оригиналы крепи. Посмотрим где m-ch налажал.
исходный код отсюда: Найти сумму трёх максимальных чисел в случайном массиве
только скопирован не полностью и с ошибками
по ссылке есть несколько вариантов решения данной задачи
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2020, 22:50

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Если сумма трёх различных чисел <1, то нужно найти сумму этих чисел, иначе вывести наибольшее число
если сумма трёх различных чисел &lt;1, то нужно найти сумму этих чисел, иначе вывести наибольшее число

Найти 3 максимальных элемента массива и заменить их на среднее этих трех
Создать массив целых чисел C. Найти 3 максимальных элемента этого массива и заменить их на среднее...

Даны два массива. Найти сумму максимальных элементов этих массивов
Даны два массива. Найти сумму максимальных элементов этих массивов,если не затруднит,то с...

Найти количество максимальных среди трех чисел
Помогите пожалуйста!!! Задача: Найти количество максимальных среди трех чисел.


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

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

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