![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 27
|
![]()
Доброго времени суток уважаемые!
Запутался в написании уравнения, вроде все правильно, но программа зануляет ответ. Уравнение прикреплено. Я же записал в С++ как, S=(1-pow(x,i))*pow(x,i). Правильно или нет я сделал? Сама программа выглядит так #include <stdio.h> #include <conio.h> #include <math.h> void main () { float S=0, x; int i; met1: printf ("vveditex\n"); scanf ("%d",&x); if (x>0.95) goto met1; for (i=1; i<=15; i++) S=S+(1-pow(x,i))*pow(x,i); printf ("S=% f\n",S); getch(); } з.ы. если что она написана в Borland C++ 5.0.2 Не пойму что тут не так, ведь вот это уравнение работает: #include <stdio.h> #include <conio.h> #include <math.h> void main () { float S=0, x; int i; met1: printf ("vveditex\n"); scanf ("%d",&x); if (x>1) goto met1; for (i=1; i<=20; i++) S=S+i*exp(-i*x); printf ("S=% f\n",S); getch(); } Последний раз редактировалось peace on you; 06.10.2011 в 12:06. Причина: upd:добавил ур-ия 1)не получившееся; 2)получившееся |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.07.2009
Сообщений: 15
|
![]()
scanf ("%d",&x); - неверно, %d - целочисленное значение, для дробного
scanf ("%f",&x); у меня при вводе 0,5 Ваша программа выдала ответ 0,666... |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 27
|
![]()
при вводе 0,5 в каком месте?
и почему scanf ("%d",&x); - неверно? если во втором уравнении это верно точно Последний раз редактировалось peace on you; 06.10.2011 в 12:56. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.07.2009
Сообщений: 15
|
![]()
1. где спрашивала программка, там и воодил
2. а в чем разница между %f и %d Вы в курсе? 3. попробуйте заменить строчку, вызывающую сомнение на x=0.5; к примеру, а далее посмотреть на результтат |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 27
|
![]()
в курсе %f - float/double(вещественное с фиксированной точкой)
%d - int(целое). У меня вызывает сомнение само уравнение. Мне нужно получить результат как и во втором уравнении (там он равен S=210.000000), в первом же получается(как не меняй) S=0.000000 |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.07.2009
Сообщений: 15
|
![]()
Ок, все с %d и %f верно.
Для ввода с клавиатуры числа типа "float/double(вещественное с фиксированной точкой)" нужно использовать соответственно %f, а не %d В случае неправильного подбора, возможны ошибки. Предлагаю вот такой вариант текста программы, где видно, что именно программа получила от пользователия при вводе (соответственно можно сразу увидеть, правильно ли отработала scanf) Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 27
|
![]()
всё справился, простите меня, если что, но вас я понять не мог.
![]() Преподаватель мне разъяснила, что нужно ввести %f вместо %d и при вводе числа, ввести не 1;2;3..., а 0,5. В итоге программа выглядит так #include <stdio.h> #include <conio.h> #include <math.h> void main () {float S=0,x, i; met1: printf ("VVEDITE x\n"); scanf ("%f",&x); if (x>=0.95) goto met1; for (i=1; i<=15; i++) S=S+(1-pow(x,i))*pow(x,i); printf ("S=%f\n", S); getch(); } и при вводе 0.5, S=0.666636 Последний раз редактировалось peace on you; 07.10.2011 в 15:17. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 27
|
![]()
всё справился, простите меня, если что, но вас я понять не мог.
![]() Преподаватель мне разъяснила, что нужно ввести %f вместо %d и при вводе числа, ввести не 1;2;3..., а 0,5. В итоге программа выглядит так #include <stdio.h> #include <conio.h> #include <math.h> void main () {float S=0,x, i; met1: printf ("VVEDITE x\n"); scanf ("%f",&x); if (x>=0.95) goto met1; for (i=1; i<=15; i++) S=S+(1-pow(x,i))*pow(x,i); printf ("S=%f\n", S); getch(); } и при вводе 0.5, S=0.666636 Последний раз редактировалось peace on you; 07.10.2011 в 15:16. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.07.2009
Сообщений: 15
|
![]()
Успехов в дальнейшем изучении С++
|
![]() |
![]() |
![]() |
#10 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись уравнения | Z1P | Помощь студентам | 2 | 07.05.2011 16:15 |
Уравнения | varyat | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 02.12.2010 08:19 |
система уравнения | Miroshnik-Slava | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 07.11.2010 00:22 |
Решение уравнения | Datrav | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 06.06.2008 08:23 |