Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Сообщений: 1,063
По умолчанию

Так а где в Вашем конкуляторе обработчик нажатия клавиш?
Можно использовать оператор 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;
}
I am not a wizard, I am just learning.

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Довести программу до ума laucher Помощь студентам 2 15.10.2016 19:51
Не могу довести до ума программу MEJIOMAH Общие вопросы C/C++ 3 24.03.2013 17: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