• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Си, вопросы насчет функций

Ильгиза

Новые
Регистрация
8 Окт 2011
Сообщения
49
Реакции
0
Баллы
0
Си, вопросы насчет функций

Здравствуйте!!
Имеется 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=a[i-1]+a[i-2];}
int s[10];
fib(&s);
for (i=1; i<25; i++;);
scanf("%d",s);
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);}
 
Ваш код не смотрел. Ну и в рекурсии циклы не используются) вот первое задание
Код:
#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));
}
 
вторая задача вот
Код:
#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);
}
 
Последнюю задачу попробуйте решить сами. Функции не пишутся внутри основной программы
 
Назад
Сверху