Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447

Решить задачу с помощью оператора case

27.09.2011, 18:59. Показов 2837. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести с клавиатуры и сохранить в массиве В кредитные ставки каждого из 11 банков города. Посчитать количество банков, в которых кредитные ставки самые высокие и превышают 18 %.

Проблема в том, что нам это нужно решить с помощью оператора case!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2011, 18:59
Ответы с готовыми решениями:

задачу с оператора выбора case очень нужно : Пусть элементами равностороннего треугольника являются: 1.Сторона а; 2.Площад
Помогите решить задачу с помощью оператора выбора case очень нужно плиз: Пусть элементами равностороннего треугольника являются: ...

Решить задачу с помощью функции и оператора case
Решить задачу с помощью функции и оператора case: Локатор ориентирован на одну из сторон света("С"-север, "З"-запад,...

Решить задачу при помощи RadioGroup и оператора Case
В общем, такая задача. Надо ее сделать с помощью RadioGroup, я программку составил, но я с трудом понимаю, как в этот rg запихнуть условия...

23
 Аватар для crazygor1
7 / 7 / 4
Регистрация: 06.02.2010
Сообщений: 131
27.09.2011, 19:08
Так ты реализовал задачу другим путём и просто не можишь через кейз?
Поищи синтаксис конструкции, не так уже оно сложнее ифов.
0
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 19:18  [ТС]
Я пытался сделать, но мне компилятор кучу ошибок выдал.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 19:19
Код в студию.
0
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 22:03  [ТС]
Это все что написал
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
 
 main() { int i,a[11];
        printf(" Ââåäèòå êðåäèòíûå ñòàâêè áàíêà: ");
        for (i=0;i<=11;i++){
            scanf(" %i ",a[i]);
            }
            getch();
            }
Но неправильно
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 22:08
Начнем с того, что вы вводите 12 банков, вместо 11. И при введении 12-го банка у вас идет выход за пределы массива.

Не по теме:

Мне одному кажется бредом делать эту задачу через case? Ладно бы было много условий.



Добавлено через 1 минуту
Ну и в scanf не %i а %d
1
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 22:16  [ТС]
Нет, мне тоже кажется что через case делать тупо. Но условие, есть условие..

Добавлено через 2 минуты
У меня после ввода первого банка, выбрасывает из проги!
Чего так?
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:22
C
1
scanf( " %i ", &a[i] );
Вам же нужно передать адрес, по которому нужно записать прочтённое значение.

Добавлено через 3 минуты
Да, и не %i, а %d, как говорил soon.
1
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 22:22  [ТС]
Да!! Спасибо!! Все вводится правильно!!
Но как выполнить условие:
Посчитать количество банков, в которых кредитные ставки самые высокие и превышают 18 %.
Я так понимаю вначале нужно:
C
1
2
3
 for (i=0;i<=11;i++){
Что тут писать?
}
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:31
Цитата Сообщение от Сидоренко Посмотреть сообщение
Что тут писать?
Код. Включайте мозги и придумывайте, как реализовать подсчёт этих банков.

Добавлено через 8 минут
Цитата Сообщение от soon Посмотреть сообщение
Мне одному кажется бредом делать эту задачу через case? Ладно бы было много условий.
soon, можно ведь и выкрутиться:

C
1
2
3
4
switch( /*logical expression*/ )
{
   case 1: /* actions */
}
1
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 22:35  [ТС]
Цитата Сообщение от Сидоренко Посмотреть сообщение
Посчитать количество банков, в которых кредитные ставки самые высокие
Это типа нужна сортировка???

Цитата Сообщение от Сидоренко Посмотреть сообщение
превышают 18 %.
Как это реализовать??

Я в этом ничего не понимаю, а они нам задают домой((
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:37
Сидоренко, если вы слышали о сортировке и дошли до массивов и конструкции switch, то точно должны были слышать о сравнениях чисел и подсчёте количества вхождений заданных значений в массив.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 22:38
soon, можно ведь и выкрутиться
Можно. В качестве бреда Имхо, преподаватель, поощряющий подобный код учит студентов плохому стилю. Может быть это и развивает нестандартное мышление, но можно ведь развить и другими способами. В самом деле, где, кроме как на олимпиадах может такое пригодиться? А если вдруг некоторые неправильно воспримут эту методику и будут менять в своем коде все if/else на switch/case? Кошмар же.
0
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 22:44  [ТС]
Вот, я сделал:
C
1
2
3
4
5
6
              for (i=0;i<=11;i++){ 
                  if(max<a[i]) {
                               max=a[i];
                               }
                               }
                  printf(" max kreditnaya stavka: %d ",max);
Все работает!!
Но я все таки не пойму как сделать :
Превышают 18%

Я так понимаю, в этой задаче нужно вывести банк, у которого кредитная ставка самая высокая..
Также, вывести банки, у которых кредитная ставка превышает 18% - Как это сделать??
Если не сложно может кто-то написать часть кода??

Цитата Сообщение от Сидоренко Посмотреть сообщение
и превышают 18 %.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 22:49
C
1
2
if(a[i] > 18)
    printf("profit!");
И вот это
C
1
 for (i=0;i<=11;i++){
Если у вас 11 банков, то будет выход за пределы массива, я, вроде уже отписывался по этому поводу
1
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:55
Сидоренко, варианта два. либо имелось ввиду "подсчитать банки, кредитная ставка которых превышает 18%", либо, как и написано, "если есть банки с кредитной ставкой выше 18%, подсчитать банки с максимальным значением кредитной ставки".
1
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 23:14  [ТС]
Звучит так:
Посчитать количество банков, у которых кредитные ставки самые большие и превышают 18%
Значит нам нужно количество банков - k
И выходит:
C
1
2
3
4
5
6
for (i=0;i<=10;i++){ 
                  if(min>a[i] && a[i]>18) {
                               k++;
                               }
                               }
                  printf(" kolichestvo bankov: %d ",k);
Но меня смущает число 18, все таки сказано 18% а не 18. И это
У которых кредитная ставка самая большая
Самая большая от чего??
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 23:16
Кредитные ставки выражаются в процентах от суммы кредита. Вы в самом начале вводите кредитные ставки банков.

Добавлено через 20 секунд
Цитата Сообщение от Сидоренко Посмотреть сообщение
Самая большая от чего??
Надо полагать, максимальная среди данных.
1
43 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
27.09.2011, 23:22  [ТС]
Цитата Сообщение от talis Посмотреть сообщение
Надо полагать, максимальная среди данных.
Да, но нам нужно вывести несколько банков...
Я взял число min=10. И решил что буду выводить банки у которых кредитная ставка больше 10 и естественно по условию задачи больше 18%.
Я вот написал весь код программы, можете проверить на ошибки, и посоветовать куда всунуть case ??
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
 
 main() { int i,a[10],min=10,k=0;
        printf(" Vvedite kreditnie stavki banka: ");
        for (i=0;i<=11;i++){
            scanf(" %d ", &a[i]);
            }
            
              for (i=0;i<=10;i++){ 
                  if(min>a[i] && a[i]>18) {
                               k++;
                               }
                               }
                  printf(" kolichestvo bankov: %d ",k);
                 
            getch();
            }
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 23:32
Гляньте пост #10. Засовываете вместо if. Должно сработать.
Ну и вы так и не исправили ошибку с циклом! Ну, т.е. одну исправили, а в 8 строке - нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2011, 23:32
Помогаю со студенческими работами здесь

Переделать программу с помощью оператора Case
Program Lab3; var a, x,y:real; begin writeln ('Введите значение а'); Readln (a); x:= abs(sin(a))+ sin(a)/cos(a); If a*x&lt;=-1...

Найти длину отрезка в метрах.(решать с помощью оператора case of)
единицы длины пронумерованы следующим образом:1-дециметр;2-километр;3-метр;4-миллиметр;5-сантиметр.Дан номер единицы длины (целое число в...

Цикл: Помогите, пожалуйста, решить задачу с использованием оператора for
import math x = int(input('Введите число:')) n = int(input('Введите число:')) S = 0 k = 1 while k &lt;= n: b =...

С помощью оператора выбора case найти значение A При заданных условиях
С помощью оператора выбора case найти значение A При таких условиях a=\begin{cases} {m}^{2}-1, \ 10\leq m\leq 15,\\sqrt{m}+10, \ 1\leq...

с помощью перебора решить задачу:
какие положительные целые числа меньше 20, удовлетворяют следующему равенству I^3 +J^3+K^3 =L^3 погите пожалуйсто составить алгоритм


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru