PDA

Просмотр полной версии : Помогите найти ошибку в программе C++



Intruder04
01.12.2008, 21:42
Скрин задания:
http://keep4u.ru/imgs/s/081201/43/4353a2b726d90a94fd.jpg (http://keep4u.ru/full/081201/4353a2b726d90a94fd/jpg)

Мой код:


#include <conio.h>
#include <iostream.h>
#include <math.h>
int koef (int m, int n)
{
if((m=0)&&(n>=0))
return 1;
if((m>n)&&(n>0))
return 0;
else
return koef(m-1,n-1)+koef(m,n-1);
}

void main()
{ int n,i;
cout<<"Введите степень в которую нужно возвести сумму \n";
cin>>n;
for(i=1;i<n;i++)
cout<<koef(i,n)<<" ";
getch();
}


Где ошибка?
Направьте меня пожалуйста(

Albor
02.12.2008, 07:34
if((m=0)&&(n>=0))
return 1;


Где ошибка?
Направьте меня пожалуйста(
Первая ошибка сразу бросившаяся в глаза. Смотри выделенный фрагмент, правильно m==0

Intruder04
02.12.2008, 10:18
Хорошо, вот исправленная версия.
Все равно при вводе числа программа ничего не делает и виснет. ХЕЛП!


#include <conio.h>
#include <iostream.h>
#include <math.h>
int koef (int m, int n)
{
if((m==0)&&(n>0))
return 1;
if((m>n)&&(n>=0))
return 0;
else

return koef(m-1,n-1)+koef(m,n-1);
}

void main()
{ int n,i;
cout<<"Введите степень в которую нужно возвести сумму\n";
cin>>n;
for(i=1;i<n;i++)
cout<<koef(i,n)<<" ";
getch();
}

rrrFer
02.12.2008, 10:36
Intruder04



#include <iostream>
int koef (int m, int n){
return !m&&n>=0||m==n&&n>=0?1:m>n&&n>0?0:koef(m-1,n-1)+koef(m,n-1);
}
void main(){
int n;std::cin>>n;
for(int i=0;i<n;i++)
std::cout<<koef(i+1,n)<<" ";
std::cin.get(),std::cin.get();
}

а это следующая:


#include <iostream>
int koef (char *s,int n){
return s[n]?koef(s,n+1):n;
}
void main(){
char *s=new char[100]; std::cin>>s;
std::cout<<koef(s,0);
std::cin.get(),std::cin.get();
}

Intruder04
02.12.2008, 10:48
Спасибо!!!!!!!