Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » вопрос СИонистам :)

Ответить
Настройки темы
вопрос СИонистам :)

Аватара для modem

Пользователь


Сообщения: 141
Благодарности: 1

Профиль | Отправить PM | Цитировать


Только вот начал изучать язык Си в универе  и вот у меня лабораторная работа одна не получается, вот задание:
Натуральные числа 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)  ;
        }
хелп новичку.............. зарание благодарен.

Отправлено: 23:26, 17-04-2004

 

Пользователь


Сообщения: 135
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#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)


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

Отправлено: 03:47, 18-04-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для bgg0408

Модер Железа


Сообщения: 1557
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


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

Добавлено:

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

-------
FreeBSD - forever


Отправлено: 13:29, 18-04-2004 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » вопрос СИонистам :)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Вопрос CocoNuts Наборы обновлений для Windows XP/2003/Windows 7 4 02-12-2007 19:32
Вопрос по AD rattle Microsoft Windows NT/2000/2003 5 08-08-2007 16:39
Вопрос по VB NLDSoft Программирование и базы данных 1 29-08-2003 09:51




 
Переход