Ошибка в программе.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by JoeBlanc, 7 Nov 2010.

  1. JoeBlanc

    JoeBlanc New Member

    Joined:
    29 Oct 2010
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Всем добрый день, я только вот начал изучать язык С, и вот делаю задачу
    [​IMG]

    Вот я набрал программу но она не работает, помогите разобраться в чем тут ошибка?

    #include <stdio.h>
    #include <math.h>
    int main(){int n; float a=.01,p=-1,s=0;
    for(n=1;fabs(p)>a;n++)s+=p/=-n;
    printf("%10.7f\n",s);
    getchar();
    return 0;}

    Оно вообще не правильно я так понял считает.
    Пожалуйста укажите мне ошибку, где я не прав тут, и если можно покажите как бы вы написали бы эту программу, буду очень благодарен за любую помощь!
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    мдауж ты совсем в другом направлении пополз.
    n! это не -n потом что n! - это факториал.

    Вообще гоняй цикл он n = 1 и каждый раз увеличивай n на 1. Вычисляя типа y = ((-1) ^ (n+1)) / n!
    sum += y; И так далее пока разница текущего sum не будет меньше sum + y на 0,01
     
    #2 slesh, 7 Nov 2010
    Last edited: 7 Nov 2010
  3. JoeBlanc

    JoeBlanc New Member

    Joined:
    29 Oct 2010
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0

    можешь пожалуйста показать на моем примере, где именно это делать?
     
  4. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    Во-первых, что это должно выглядеть вот так:
    Code:
    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
    	int n; 
    	float a=.01,p=-1,s=0; 
    
    	for(n=1;fabs(p)>a;n++)	s+=p/=-n; 
    	
    	printf("%10.7f\n",s); 
    	getchar(); 
    	return 0;
    }
    
    Во-вторых, ты не пояснил — что именно должна делать программа.
     
  5. JoeBlanc

    JoeBlanc New Member

    Joined:
    29 Oct 2010
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Ну нужно посчитать сумму ряда.
     
  6. lokli

    lokli New Member

    Joined:
    28 Dec 2009
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Code:
    #include <stdio.h>
     #include <math.h>
      int main() 
    { 	
    int n;  
    int k=1;	
    float a=.01,p=-1,s=0;   
    for(n=1;fabs(p)>a;n++)
    {
            k*=n;
            if((pow(-1,n)/k)>a)
    	  s+=pow(-1,n)/k;  
            else 
              break;	
    } 	
    printf("%10.7f\n",s);  	
    getchar();  	
    return 0;
     }
    что то такое вроде хотя не пойму где в Вашей программе используется альфа. В общем формула та что приведена на вашей картинке.
     
    #6 lokli, 7 Nov 2010
    Last edited: 7 Nov 2010
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    пля народ вы меня убиваете, нахера вычислять степень для числа -1 ?
    если показатель степени четный то результат просто 1, если не четный то так и остается -1
    Млять одному впадлу разобраться с домашним заданием и глянуть в лекции, а другим хочется выпендриться и пишут откровенно говоря х*йню.

    задача отчасти некорректа. Потому что тут не заданы конкретные условия для выполнения. т.е. пока n не станет равным бесконечности. обсурд короче.

    Другое дело точность. если имеется ввиду что значение модуля вычисления текущего выражения будет меньше альфа, то остановить цикл то тогда есть вариант решения. иначе задача некорректна.
    Code:
    int main(int argc, char* argv[])
    {
    	int n;
    	float a = 0.01;
    	float sum = 0;
    	float y;
    	int factorial = 1;
    
    	for (n = 1; ; n++)
    	{
    		factorial *= n;
    		y = (n +1) % 2 == 0 ? 1 : -1;
    		y /= factorial;
    		sum += y;
    		if (fabs(y) < a)
    		{
    			break;
    		}
    	}
    	printf("%10.7f", sum);
    	
    	return 0;
    }
    
     
    #7 slesh, 8 Nov 2010
    Last edited: 8 Nov 2010
  8. lokli

    lokli New Member

    Joined:
    28 Dec 2009
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Сори и правда написал фигню. Совсем забыл математику(((
     
Loading...
Similar Threads - Ошибка программе
  1. Peja
    Replies:
    0
    Views:
    2,520