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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2012, 18:49   #1
hex_91
Новичок
Джуниор
 
Регистрация: 26.04.2012
Сообщений: 1
Печаль Пусть задано значение X. Найти первое из чисел sin X, sin sin X, sin sin sin X, ... , меньшее по модулю 10-4.

Ребята помогите.... уже не знаю куда обратится...
Есть задание: Пусть задано значение X. Найти первое из чисел sin X, sin sin X, sin sin sin X, ... ,меньшее по модулю 10-4. При этом кроме числа вводить ничего нельзя!!! Вот что я набросал:

Код:
#include "stdafx.h"
#include "math.h"
#include "iostream"
#include "locale.h"

bool isStrDigit(char str[])
	{
	bool isDotInDigit = false;
	bool isMinusInDigit = false;
	if ((*str=='.')||(*str==','))
		{
		return false;
		str++;
		}
	if (*str=='-')
		{
		isMinusInDigit=true;
		str++;
		}
	while(*str)
		{
		if('0'<=*str && *str<='9' || *str=='.'||*str==',' && !isDotInDigit && !isMinusInDigit)
			{
			if((*str=='.')||(*str==','))
				{
				isDotInDigit = true;
				*str=',';
				}
			str++;
			}
		else
			return false;
		}
	str--;
	if	((*str=='.')||(*str==','))
		{
		return false;
		}
	return true;
}


int _tmain(int argc, _TCHAR* argv[])
{
  setlocale(LC_ALL,"rus");
  char input[15];
  float x = 10.0;
  float _sin=sin(x);		
  do
		{
		printf ("Введите x: ");
		gets(input);
		if (isStrDigit(input))
			break;
		else
			system("cls");
		}
	while(!isStrDigit(input));
  x=atof(input);
  while (fabs(_sin)<0.0001);	
  _sin=_sin*sin(x);				
  printf ("x=%f\n", _sin);
  system("pause");
	
  return 0;
}
Препод сказал что она работает не правильно!!! Помогите кто небуть очень прошу!!!!!!!!!!!!!!!

Последний раз редактировалось rpy3uH; 29.04.2012 в 18:34.
hex_91 вне форума Ответить с цитированием
Старый 28.04.2012, 23:49   #2
MrWorm
 
Регистрация: 07.04.2012
Сообщений: 3
По умолчанию

Здравствуйте, предлагаю такой вариант.

Код:
#include <stdio.h>
#include <math.h>



int main (int argc, char** argv)
{
   double x;
   unsigned long sin_count = 0;
   const double acc = 0.0001;
   
   // Ввод x
   printf ("\nInput x = ");
   scanf ("%lf", &x);
   // Подсчёт sin(..sin(x)..)
   do
   {
      x = sin (x);
      sin_count++;
   } 
   while (fabs (x) > acc);
   // Вывод
   printf ("\nsin count = %i", sin_count);
   
   return 0;
}
MrWorm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 Kikikiss Помощь студентам 2 25.03.2012 13:58
Вычисление суммы:sinx+sin(sinx)+sin(sin(sinx)) ..+..sin(..(sinx)) на дельфи Nach Помощь студентам 3 16.11.2011 10:05
Функция y=2cos(3пx)sin(пx)+(sin(3пx)/x) ofenod Microsoft Office Excel 5 07.04.2011 03:22