 |
|
Только вот начал изучать язык Си в универе и вот у меня лабораторная работа одна не получается, вот задание:
Натуральные числа 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 205916 |
Код:
#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к < Ак < к!
|
А в проге
Если запись 2^k имелось ввиду степень то вместо 2*k пиши (2<<k)
[s]Исправлено: bilytur, 4:16 18-04-2004[/s]
|
bgg0408 |
18-04-2004 13:29 205917 |
ТАК НЕ пишут!
Пишем так:
или
Это была первая ошибка.
Вторая: Вы используете функцию int fakt(int к) до ее определения в файле. Выход:
написать за строчку ДО main'а
Добавлено:
Кстати, лишено смысла. Если хотите сделать программу, делающую то что нужно, используйте if
|
Время: 18:56.
© OSzone.net 2001-