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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 21:01   #1
maxistudent
 
Регистрация: 21.04.2010
Сообщений: 3
Вопрос Не могу найти ошибку

Подскажите, что именно неправильно? Что неправильно с рекурсией?
Изображения
Тип файла: jpg 2010-04-21_204008.jpg (56.8 Кб, 60 просмотров)
maxistudent вне форума Ответить с цитированием
Старый 21.04.2010, 22:37   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Что есть k? Она у вас нигде не объявлена.
П.С. Сурово вы - код в картинке прикрепили! Вы бы лучше по старинке его - текстом...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.04.2010, 22:43   #3
maxistudent
 
Регистрация: 21.04.2010
Сообщений: 3
По умолчанию Поправка

k - это счётчик, торопился, забыл написать
maxistudent вне форума Ответить с цитированием
Старый 21.04.2010, 22:51   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Если забыли написать в нерабочем коде - допишите и если все равно не работает - выложите его в текстовом виде и с конкретным описанием что не так.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.04.2010, 22:59   #5
maxistudent
 
Регистрация: 21.04.2010
Сообщений: 3
По умолчанию исправлено

//задание см. выше

Код:
#include "stdafx.h"
#include "conio.h"
#include "iostream"

double rs(double x,double y,size_t n)
{
 int k; //счётчик (подскажите как правильно организовать рекурсию)
 double x1=1,y1=1;
 if (k==1) return 0;
 x-k=1;
 y-k=1;
 yi=x+y;
 xi=0.3*x;
 k++;
 k=n;
 return (xi/(1+yi))+rs(x,y,n-1);
}
int main()
{
  size_t n=0;
  std::cout << "Vvesti naturalnoe chislo n: ";
  std::cin >> n;
  double x=0,y=0;
  std::cout << "Resultat: " << rs(1,1,n);
  system("pause");
  return 0;
}

Последний раз редактировалось MaTBeu; 21.04.2010 в 23:02.
maxistudent вне форума Ответить с цитированием
Старый 21.04.2010, 23:30   #6
lubchuk
 
Аватар для lubchuk
 
Регистрация: 21.04.2010
Сообщений: 3
По умолчанию

было задание по сортировке массива, поиску мин эл. по модулю и нахождению суммы после первого нуля, получилось вот что:
Цитата:
#include<iostream>
#include<conio.h>
#define sz 20
using namespace std;
int main()
{
int a[sz],e[sz/2],u[sz/2],z,q,i,m,s=0,j=0,t=-1,y;
//========================
for(i=0;i<sz;i++)
{cout<<"Element a["<<i+1<<"]=";
cin>>a[i];
}
//==========================
m=a[0];
for(i=1;i<sz;i++)
{if (abs(a[i])<abs(m))
m=a[i];
}cout<<"\nMin. po mod. element="<<m;
//===========================
i=0;
for(i=t;i<sz;i++)
{if (a[i]==0)
t=i;
}if(t!=-1)
if(t!=sz-1)
{
for(i=t;i<sz;i++)
s=s+abs(a[i]);
cout<<"\n\nSumma elementov posle pervogo nulevogo="<<s;
}
else
cout<<"\n\nNulevoi element-poslednii";
else
cout<<"\n\nNet Nulei";
//============================
q=0;
z=0;
for(i=0;i<sz;i++)
{if((i+1)%2==0)
{u[z]=a[i];
z++;
}
else{
e[q]=a[i];
q++;
}
}
for(i=0;i<sz/2;i++)
a[i]=u[i];
for(i=sz/2;i<sz;i++)
a[i]=e[i-sz/2];
cout<<"\n\nSform.massiv= ";
for(i=0;i<sz;i++)
cout<<a[i]<<" ";
//===========================

getch();
return 0;
}
Потом было задание преобразовать данный массив в динамический, и у меня начались проблемы, компилятор Div не стал читать ввод/вывод С++, начал изменять получилось вот что:
Цитата:
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<conio.h>



float min(int sz,int *a)
{
int m=a[0], t=-1;
for(int i=1;i<sz;i++)
if (abs(a[i])<abs(m))
m=a[i];
printf("m=%d",m);
return m;
}

float sum(int *a,int sz)
{
int s=0,t=-1,p=1;
for(int i=t;i<sz;i++)
{if (a[i]==0)
if (p=1)
{t=i;}
p=p+1;
}
for(int i=t;i<sz;i++)
{
s=s+abs(a[t]);
t++;
}
printf("s=%d",s);
return s;
}

float order(int *a,int sz)
{

int q=0,z=0,e[sz/2],u[sz/2];
for(int i=0;i<sz;i++)
{if((i+1)%2==0)
{u[z]=a[i];
z++;
}
else{
e[q]=a[i];
q++;
}
}
for(int i=0;i<sz/2;i++)
a[i]=u[i];
for(int i=sz/2;i<sz;i++)
a[i]=e[i-sz/2];
for(int i=0;i<sz;i++)
printf("a[i]=%d",a[i]);

}

int main()
{
int sz;
printf("Enter size of matric sz=");
scanf("%sz", &sz);
int *a = new int [sz];
for (int i = 0; i < sz; i++)
scanf("%i", &a[i]);



printf("min=",min);
printf("sum=",sum);
printf("order=",order);


delete a;

}
Такое чувство что у меня местами бред полный, можете подсказать где именно и как это исправить? Пожалуйста...
lubchuk вне форума Ответить с цитированием
Старый 29.04.2010, 20:52   #7
lubchuk
 
Аватар для lubchuk
 
Регистрация: 21.04.2010
Сообщений: 3
По умолчанию

а все спс исправил))
lubchuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку С\С++ Айдар Помощь студентам 1 08.03.2010 18:16
Не могу найти ошибку(С++) Yura_n Помощь студентам 8 20.01.2009 12:36
Не могу найти ошибку. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 17:05
Не могу найти ошибку . KVANTOM Общие вопросы Delphi 2 08.01.2009 17:15