Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 06.06.2020, 20:32   #1
Иванова1
Новичок
Джуниор
 
Регистрация: 31.05.2020
Сообщений: 2
По умолчанию Помогите довести программу до ума

Нужно написать специальный конкулятор. Я написал программу но компилятор не хочет ее принимать

вот ссылка на задание https://ibb.co/C6VYFTB
вот мой код на языке С:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int a,b,c,n;
scanf("%d %d %d %d",&n ,&a, &b, &c);
if(a <= 60 && b <= 60 && c <= 60 && n > 0)
{
while( n > 0 && (a != 0 || b != 0 || c != 0) )
{

if(a != 0)
{
n /= 2.0;
--a;

}
if(b != 0)
{
n = (n+1)/2.0;
--b;
}
if(c != 0)
{
if( n > 0)
{
n = (n-1)/2.0;
--c;
}
else
n = 0;
}
}
printf("%d",n);

}

}
Иванова1 вне форума Ответить с цитированием
Старый 06.06.2020, 23:27   #2
Desc
Форумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 684
По умолчанию

Так а где в Вашем конкуляторе обработчик нажатия клавиш?
Можно использовать оператор case, тогда получится нечто похожее на:
Код:
// lang c11
#include <iostream>
#include <windows.h>
#include <conio.h>

void fnA(){
    ...................................................
	код вычислений по клавише "А"
    ...................................................
}
void fnB(){
    ...................................................
	код вычислений по клавише "В"
    ...................................................
}
void fnC(){
    ...................................................
	код вычислений по клавише "С"
    ...................................................
}
int main()
{
	std::cout << "Enter swich" << std::endl;
	std::cout << "Enter A, B or C key\n" << std::endl;
	 while(true)
	 {
	     if(kbhit()) // опрос клавиатуры
	    {
	      switch(getch()){
	      case 65:
	      std::cout << "Entered A key" << std::endl;
	      std::cout << "Result ";
	      fnA(); // функция обработчик
              break;
              case 66:
	      std::cout << "Entered B key" << std::endl;
	      std::cout << "Result ";
	      fnB(); // функция обработчик
              break;
              case 67: 
              std::cout << "Entered C key" << std::endl;
              std::cout << "Result ";
              fnC(); // функция обработчик
              break;}
             }
	        if (GetAsyncKeyState(VK_ESCAPE)){
	    	std::cout << std::endl;
	    	Sleep(1500);
		std::cout << "Bye Bye" << std::endl;
		Sleep(500);
		break;}
	  }
	system ("pause");
	return 0;
}

Последний раз редактировалось Desc; 06.06.2020 в 23:37.
Desc вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Довести программу до ума laucher Помощь студентам 2 15.10.2016 19:51
Не могу довести до ума программу MEJIOMAH Общие вопросы C/C++ 3 24.03.2013 16:34
Помогите довести до ума andresan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.11.2009 07:46
Помогите довести до ума две процедуры! Mr.User Помощь студентам 9 28.11.2007 10:21


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS