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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 10:10   #1
Павел2517
Пользователь
 
Регистрация: 05.03.2016
Сообщений: 11
Радость Не могу понять почему выводится на экран два запроса на ввод числа. СИ.

Надо найти степень числа 2 от введенного числа. Программа выводит два запроса на ввод числа, причину не могу выявить. При этом функции proverkaStepen() не выполняется вообще.
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>


int inputStepen()
{
	int a;

	printf("Введите степень двойки: ");
	scanf_s("%d", &a);
	
	return a;
}
bool proverkaStepen()
{
	if (inputStepen <= 0)
		return false;
	else return true;
}
int podchet()
{
	int result = 1, a = 2;
	double b = inputStepen();

	result = pow(a, b);

	return result;
}
void Out(int c)
{
	printf("2 в %d = %d\n",inputStepen(), c);
}
int main()
{
	setlocale(LC_ALL, "Rus");



	int a;

	a = podchet();
	
	Out(a);

	_getch();
	return 0;
}

Последний раз редактировалось Павел2517; 13.03.2016 в 10:12. Причина: Дописал проблему
Павел2517 вне форума Ответить с цитированием
Старый 13.03.2016, 13:15   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а дебаггер?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 14:35   #3
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Цитата:
Программа выводит два запроса на ввод числа
дважды запускаешь inputStepen()
CMY_3 вне форума Ответить с цитированием
Старый 13.03.2016, 21:17   #4
Kap98k
 
Регистрация: 20.11.2008
Сообщений: 8
По умолчанию

Цитата:
Код:
bool proverkaStepen()
{
	if (inputStepen <= 0)
		return false;
	else return true;
}
лучше наверное вот так, но не поможет, потому что в main() ты нигде не используешь эту функцию.
Код:
bool proverkaStepen()
{
	if (inputStepen() <= 0)
		return false;
	else return true;
}
А еще лучше так:
Код:
	
	int a;

	printf("Введите степень двойки: ");
	scanf_s("%d", &a);
	if (а <= 0)
		return 0 //или можешь любое другое минимальное число выводить, либо требовать повторный ввод;
	else return a;
А второй запрос кроется на ввод кроется вот здесь.
Цитата:
Код:
void Out(int c)
{
	printf("2 в %d = %d\n",inputStepen(), c);
}

Последний раз редактировалось Kap98k; 13.03.2016 в 21:21.
Kap98k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ - При написании программы по нахождению минимума на экран ничего не выводится, почему? Robert_ Помощь студентам 1 30.03.2015 19:23
не могу понять почему не правильно выводятся числа массива Nikitos_ Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2012 11:52
Не могу понять в почему ошибка Donim Паскаль, Turbo Pascal, PascalABC.NET 5 08.06.2011 23:07
Два часа не могу понять в чем дело =( Flu Общие вопросы C/C++ 12 14.01.2011 18:04
Ввод с клавиатуры два целых числа без знака и вывод на экран их сумму. gelya_17 Помощь студентам 5 18.10.2010 10:31