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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2011, 21:54   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию C++ - а почему считает неправильно!

Люди, помогите!
Старая как мир задача: числа от 1 до 999. Должен вывести строку "Это четное двухзачное число", "Это нечетное трехзначное число"
По условию моей задачи - проверка происходит делением. Я уже прописанное условие тысячу раз просмотрела, но не могу понять, почему компьютер видит совсем по другому..... заместо однозначного выдает трехзначное число, а трехзначное принимает за двухзначное.... А если набираю 10 или 100 он их видит как однозначное. Четность и нечетность определяет правильно.

Вот код:
Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main ()
{
int chislo;
cout << "Vvedite chislo v diapazone ot 1 do 999: "<<endl;
cin >> chislo;

	if (fmod (double (chislo),2)==0)
	{
	   cout << "Eto chetnoe ";
	}
	else
	{
	   cout<< "Eto nechetnoe ";
	}
	
	if (fmod (double (chislo),10)<1)
	{
		cout << "odnoznichnoe chislo" << endl;
	}
	else
		{
			if ( (fmod (double (chislo),10)>=1 )&&(fmod (double (chislo),10)<10))
			
			{
				cout << "dvuznachnoe chislo" << endl;
			}
				else
				{
					cout << "trehznachnoe chislo" << endl;
				}
		}
_getch ();
return 0;

}
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 13.02.2011, 22:55   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main ()
{
int chislo;
cout << "Vvedite chislo v diapazone ot 1 do 999: "<<endl;
cin >> chislo;

	if (chislo%2==0)
	{
	   cout << "Eto chetnoe ";
	}
	else
	{
	   cout<< "Eto nechetnoe ";
	}
	
	if (chislo/10==0)
	{
		cout << "odnoznichnoe chislo" << endl;
	}
	else
		{
			if ( chislo/10<10 )
			
			{
				cout << "dvuznachnoe chislo" << endl;
			}
				else
				{
					cout << "trehznachnoe chislo" << endl;
				}
		}
_getch ();
return 0;

}
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 25.02.2011, 16:30   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Спасибо большое!))
Я прошу прощения, что не поблагодарила сразу - просто мне сказали, чтобы я не путала сама себя с делением, а решила эту задачу с использованием диапазонов))
Но все равно - я хоть поняла, где была ошибка)))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните пожалйуста почему if работает неправильно ImmortalAlexSan Общие вопросы C/C++ 8 11.02.2011 10:33
почему эта программа не считает количество букв? WitaliG Помощь студентам 3 24.01.2011 17:32
почему на чужем ПК неправильно работает программа Coder01 Общие вопросы Delphi 10 24.08.2010 19:34
Неправильно считает, очень прошу помочь Yulya92 Общие вопросы C/C++ 4 12.11.2009 23:33
Почему мат процессор не считает точно sin(pi) = 0? FPU128bit Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 27.10.2009 17:03