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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 22:32   #1
Alex COD
 
Регистрация: 04.04.2011
Сообщений: 9
По умолчанию Убираем ошибки в программе.

Компилирую программу, запускаю и вот такие ошибки:
- Калькулятор пропускает ввод первого числа
- Matrix пропускает ввод Y/N
- возможно есть еще ошибки, просто глаз уже замылился
Все мои попытки исправить ошибки не к чему не приходили.
Пожалуйста помогите.
Заранее спасибо!
Вот исходник:
Код:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

void Calculator(void);
void Game(void);
int rnd(int range);
void seedrnd(void);
void Matrix(void);
int rnd(int range);
void seedrnd(void);

int main()
{
	char num;
	
	printf("*********************************************\n");
	printf("Enter number, what do you want:\n\n");
	printf("1.Calculator\n");
	printf("2.Game\n");
	printf("Bonus:\n\n");
	printf("9.Matrix\n\n\n");
	num=getchar();
	switch(num)
	{
		case '1':
			Calculator();
			break;
		
		case '2':
			Game();
			break;
		
		case '9':
			Matrix();
			break;
		
		default:
			printf("OK. Goodbye!\n");
	}
	getch();
	return(0);
}

void Calculator(void)
{
	int a;
	int b;
	int c;
	int c1;
	char A[8];
	char B[8];
	char C[8];
	char ch;
	
		printf("*****************************\n");
		printf("*  Hello! It's calculitor!  *\n");
		printf("*****************************\n");
		printf("Press first number...\n");
		gets(A);
		a=atoi(A);
		printf("Press + or - or * or /\n");
		gets(C);
		printf("Press second number...\n");
		gets(B);
		b=atoi(B);
		if(C[0]=='+')
		{
			c=a+b;
			printf("Your number %i",c);
		}
		else if(C[0]=='-')
		{
			c=a-b;
			printf("Your number %i",c);
		}
		else if(C[0]=='*')
		{
			c=a*b;
			printf("Your number %i",c);
		}
		else if(C[0]=='/')
		{
			c=a/b;
			printf("Your number %i",c);
		}
	
	getch();
}

void Game(void)
{
	int you;
	int PC;
	
	printf("Press Enter to throw dices\n");
	printf("Press Enter to START...\n");
	getch();
	
	srand(time(NULL));
	you=rand() % 12 + 1;
	printf("%i\n",you);
	
	PC=rand() % 12 + 1;
	printf("%i\n",PC);
	
	if(you>PC)
	{
		printf("You WIN!!!\n");
	}
	else if(PC>you)
	{
		printf("You LOSE!!!\n");
	}
	else
	{
		printf("DRAW!!!\n");
	}
	getch();
}


void Matrix(void)
{
	int i;
	char A[8];
	
	printf("Do you want to start matrix? (Y/N)\n");
		
	HANDLE consoleOutput; 
 consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);   
  SetConsoleTextAttribute(consoleOutput, 0 | 0 | 10);
	gets(A);
	if(A[0]=='Y' || A[0]=='y')
	{
		for(;;)
		{
			printf("%d",rnd);
		}
	}
	else
	{
		printf("OK! Goodbye!\n");
	}
	getch();
}

int rnd(int range)
{
	int r;
	
	r=rand()%range;
	return(r);
}

void seedrnd(void)
{
	srand((unsigned)time (NULL));
}
Alex COD вне форума Ответить с цитированием
Старый 06.04.2011, 00:15   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Как ни странно это звучит, но кроме ошибки во фразе "Hello! It's calculitor!" (кстати, оговорочка-то почти по Фрейду -- без калькуЛИТоРА не разберешься -)) ), ошибок я не нашел...
И программы у меня все заработали -- и вместе, и по отдельности.
Разве что вот это:
Цитата:
Код:
	HANDLE consoleOutput; 
 consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);   
  SetConsoleTextAttribute(consoleOutput, 0 | 0 | 10);
я сразу закомментировал... <windows.h> у меня не пляшет -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 06.04.2011, 08:03   #3
Alex COD
 
Регистрация: 04.04.2011
Сообщений: 9
По умолчанию

А что у вас за платформа?
И кстати, у меня тоже работает, но в калькуляторе, не получается ввести первое число, хотя переменные объявлены и используется gets(A). Где A переменная.

Последний раз редактировалось Alex COD; 06.04.2011 в 08:07.
Alex COD вне форума Ответить с цитированием
Старый 06.04.2011, 19:52   #4
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

Optimizirovati nujno mnogo ... )
ispozuvai switch() taman na kalculyatore, i printf("Your number %i",c); postavi v konetz posle switch() ...
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 06.04.2011, 21:30   #5
Alex COD
 
Регистрация: 04.04.2011
Сообщений: 9
По умолчанию

Теперь код такой:
Код:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

void Calculator(void);
void Game(void);
int rnd(int range);
void seedrnd(void);
void Matrix(void);
int rnd(int range);
void seedrnd(void);

int main()
{
	char num;
	
	printf("*********************************************\n");
	printf("Enter number, what do you want:\n\n");
	printf("1.Calculator\n");
	printf("2.Game\n");
	printf("Bonus:\n\n");
	printf("9.Matrix\n\n\n");
	num=getchar();
	switch(num)
	{
		case '1':
			Calculator();
			break;
		
		case '2':
			Game();
			break;
		
		case '9':
			Matrix();
			break;
		
		default:
			printf("OK. Goodbye!\n");
	}
	getch();
	return(0);
}

void Calculator(void)
{
	int a;
	int b;
	int c;
	int c1;
	char A[8];
	char B[8];
	char C[8];
	char ch;
	
	printf("Press first number...\n");
	gets(A);
	a=atoi(A);
	printf("Press + or - or * or /\n");
	gets(C);
	printf("Press second number...\n");
	gets(B);
	b=atoi(B);
	switch(c)
	{
		case '+':
			c=a+b;
			break;
		case '-':
			c=a-b;
			break;
		case '*':
			c=a*b;
			break;
		case '/':
			c=a/b;
			break;
	}
	printf("Your number %i",c);
}

void Game(void)
{
	int you;
	int PC;
	
	printf("Press Enter to throw dices\n");
	printf("Press Enter to START...\n");
	getch();
	
	srand(time(NULL));
	you=rand() % 12 + 1;
	printf("%i\n",you);
	
	PC=rand() % 12 + 1;
	printf("%i\n",PC);
	
	if(you>PC)
	{
		printf("You WIN!!!\n");
	}
	else if(PC>you)
	{
		printf("You LOSE!!!\n");
	}
	else
	{
		printf("DRAW!!!\n");
	}
	getch();
}


void Matrix(void)
{
	int i;
	char A[8];
	
	printf("Do you want to start matrix? (Y/N)\n");
		
	HANDLE consoleOutput; 
 consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);   
  SetConsoleTextAttribute(consoleOutput, 0 | 0 | 10);
	gets(A);
	if(A[0]=='Y' || A[0]=='y')
	{
		for(;;)
		{
			printf("%d",rnd);
		}
	}
	else
	{
		printf("OK! Goodbye!\n");
	}
	getch();
}

int rnd(int range)
{
	int r;
	
	r=rand()%range;
	return(r);
}

void seedrnd(void)
{
	srand((unsigned)time (NULL));
}
Но ошибка та же самая. Калькулятор пропускает ввод первого числа.
Alex COD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в программе Andersen1313 Общие вопросы C/C++ 3 04.12.2010 09:51
ошибки в программе ShadowAGT Помощь студентам 8 27.09.2010 20:54
Ошибки в программе! Ivanito Общие вопросы C/C++ 3 15.05.2010 20:01
ошибки в программе по С++ Игорь11071990 Помощь студентам 2 20.01.2010 14:22
ошибки в программе gralex10 Помощь студентам 0 16.12.2009 00:37