Войти

Показать полную графическую версию : вопрос СИонистам :)


modem
17-04-2004, 23:26
Только вот начал изучать язык Си в универе  и вот у меня лабораторная работа одна не получается, вот задание:
Натуральные числа A1,А2, ... , Аn вводятся с клавиатуры. Признак конца ввода - нажатие комбинации клавиш ctrl+z.
Определить количество членов Ак последовательности А1 ... Аn, удовлетворяющие условию 2к < Ак < к! (факториал) , вот я, кое что написал, только вот при компиляции кучу ошибок выдаёт.

#include <stdio.h>
#include <math.h>
main()
{
      int n;        /* кол-во чисел */
      int a;        /* очередное число */
      int k;        /* порядковый номер числа в последовательности */
      printf("\n введите числовую последователность \n");
      while(scanf("%d",&a)!=-1)
      {for (k=1; k<=n; k++)
       {abs(a) > 2^k;
        abs(a) < к*fakt(к-1);
        }
      }
      printf("количество чисел=%d\n",n)

    }
    int fakt(int к)  
        {
        return ( (к==1) ? 1 : к*fakt(к-1)  );
        }

хелп новичку.............. зарание благодарен. :)

bilytur
18-04-2004, 03:47
#include <stdio.h>
main()
{
*int n = 0; * */* кол-во чисел */
*int a; * * * */* очередное число */
*int k = 0; * */* порядковый номер числа в последовательности */
*int f = 1; * */* Факториал считаем на ходу так быстрее */

*printf("\n введите числовую последователность \n");
*while(scanf("%d",&a)!=EOF)
*{
* * *f *= ++k;
* * *if((a > 2*k) && (a < f))
* * *{
* * * * *n++;
* * *}
*}

*printf("Всего чисел удовлетворяющие условию - %d\n", n);
}

У тебя путаница. В условиях ты пишешь:
удовлетворяющие условию 2к < Ак < к!
А в проге
abs(a) > 2^k;

Если запись 2^k имелось ввиду степень то вместо 2*k пиши (2<<k)


Исправлено: bilytur, 4:16 18-04-2004

bgg0408
18-04-2004, 13:29
main()
ТАК НЕ пишут!
Пишем так:
void main(void)
или
int main (void)
Это была первая ошибка.
Вторая: Вы используете функцию int fakt(int к) до ее определения в файле. Выход:
написать  int fakt(int к);
за строчку ДО main'а

Добавлено:

Кстати, abs(a) > 2^k;
лишено смысла. Если хотите сделать программу, делающую то что нужно, используйте if




© OSzone.net 2001-2012