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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2009, 14:38   #1
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию Преобразование типов

Дан код:

Код:
#include <stdio.h>
int main(){
double p;
int i;
scanf("%lg",&p);

for(i=0;((p/100)*1000)*i+1000<1101;i++){}
	

if(i==1){
	printf("1 Month\n");
}else{
	printf("%d Month\n",i-1);
}

printf("%lg Vklad \n",(double)p/100*1000*i+1000);

}
По идее printf("%lg Vklad \n",(double)p/100*1000*i+1000); должно выводится значение с числами после запятой, а выводятся целые числа! В чем ошибка?
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 02.03.2009, 15:20   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

раз double, то скорее
Код:
scanf("%lf",&p);
и
Код:
printf("%lf Vklad \n",(double)p/100*1000*i+1000);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.03.2009, 18:12   #3
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Да, писать он стал верно! Но после запятой одни нули! То есть получается что целое число, а к нему нули приписываются! Не подскажите как сделать, чтобы деление производилось с числами после запятой (Не нули )
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 02.03.2009, 18:27   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

MAKEDON А вы какое число вводите?
Если число целое (например, 5), то получится:
5/100*1000*i+1000 = 5*10*i + 1000
То есть в ответе целое число.
Если ввести какое-нибудь 0.31235, то будут не только нули после запятой.

Что этот код вообще делает?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование типов данных stepchild БД в Delphi 14 19.07.2009 21:45
Несовпадение типов ILOR Помощь студентам 5 26.11.2008 13:56
Совместимость типов DeDoK Общие вопросы Delphi 2 06.05.2008 21:28
Преобразование типов Pronik Общие вопросы Delphi 2 12.06.2007 12:23