Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 18.04.2012, 19:36   #1 (permalink)
Ильгиза
Member
 
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Си, вопросы насчет функций

Здравствуйте!!
Имеется 3 задачи, на функции,решила их так как поняла. Я понимаю, мои решения полный бред, но не могли бы вы помощь мне найти ошибки в моих программах.

1)описать рекурсивную функцию для вычисления К-го числа Фибоначчи.
1,1,2,3,5,8,13,21...

решила так.

#Include <stdio.h>
Int main();
Int s[10];
int void fib(int*s);
{int i;
s[1]=1;
s[2]=1;
for (i=3; i<25; i++;
{ a[i]=a[i-1]+a[i-2];}
int s[10];
fib(&s[i]);
for (i=1; i<25; i++;
scanf("%d",s[i]);
return 0;
}


2)описать функцию,вычисляющую количество единиц в двоичной записи целого числа . с ее помощью определить число из заданного диапазона [a,b] с мах количеством единиц в двоичной записи.


#Include <stdio.h>
Int main();
int void kol(int*n);
{ int a,k;
if (n>=1) and (n<=100)
while (n!=0)
{ a=n%2;
n=n/2;
if a=1 k++;}
int n1,n2;
int k1,k2;
printf("ввод ");
scanf("%d%d",&n1,&n2);
kol(&n1);
kol(&n2);
if k1>k2 printf("%",n1);
else if k2>k1 printf("%",n2);
else printf("количество единиц одинаково");
}


3)описать функцию,вычисляющую действительный корень биквадратного уравнения и их количество. результат возвратить в массиве.

#Include <stdio.h>
double main();
double void sp(double*a,double*b,double*c);
{ double x1,x2,x3,x4;
double t,t1,t2,d;
d=(b*b-4*a*c);
if d<0
printf("нет решения");
else if d=0 { t=-b/(2.0*a);
if t<0 printf("нет решений");
else if t=0 printf("решение уравнения x1=x2=x3=x4=0");
else if t>0 printf("x1=x2=",sqrt(t),"x3=x4=",-sqrt(t));}
else if d>0
{t1=(-b+sqrt(d))/(2.0*a);t2= (-b-sqrt(d))/(2.0*a);
if (t1>0)
and (t2<0)
printf("x1=",sqrt(t1),"x2=",-sqrt(t1));
else if (t1<0) and(t2>0)
printf("x1=",sqrt(t2),"x2=",-sqrt(t2));
else if
(t2>0) and (t1<0)
printf("x1=",sqrt(t1),"x2=",-sqrt(t1),"x3=",sqrt(t2),"x4=",sqet(t2));}
}
double a1,b1,c1;
printf("a1");
scanf(a1);
printf("a2");
scanf(a2);
printf("a3");
scanf(a3);
sp(&a1,&b1,&c1);}
Ильгиза вне форума   Ответить с цитированием

Старый 18.04.2012, 19:36
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Очень часто проблемы у людей похожи, вот вам список аналогичных топиков

Насчет репутации
В раздумьях насчет усилителя

Старый 19.04.2012, 02:24   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Ваш код не смотрел. Ну и в рекурсии циклы не используются) вот первое задание
Код:
#include <stdio.h>

int fib(int n){
  if (n==0){
    return 0;
  }
  else if(n==1){
    return 1;
  }
  else{
    return fib(n-1) + fib(n-2);
  }
}

int main(){
  int n;
  printf("n=");
  scanf("%d",&n);
  printf("n член ряда Фибоначчи f=%d\n",fib(n));
}
kreol вне форума   Ответить с цитированием
Старый 19.04.2012, 02:52   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

вторая задача вот
Код:
#include <stdio.h>

int value_one(int n){
  int val=0;
  while (n != 0){
    if(n % 2 == 1){
      val++;
    }
    n = n / 2;
  }
  return val;
}

int main(){
  int a, b, max;
  printf("a=");
  scanf("%d",&a);
  printf("b=");
  scanf("%d",&b);
  max = value_one(a);
  for (int i=a+1; i < b+1; i++){
    if(max < value_one(i)){
      max = value_one(i);
    }
  }
  printf("%d\n",max);
}
kreol вне форума   Ответить с цитированием
Старый 19.04.2012, 15:22   #4 (permalink)
Ильгиза
Member
 
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо большое!!!!
Ильгиза вне форума   Ответить с цитированием
Старый 19.04.2012, 17:22   #5 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Последнюю задачу попробуйте решить сами. Функции не пишутся внутри основной программы
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:52.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.