Автор Тема: Начинаещ в програмирането  (Прочетена 919 пъти)

tommy.bg

  • Напреднали
  • *****
  • Публикации: 63
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
От скоро се опитвам да уча c/c++ и на един сорс ми дава грешка, ще съм ви благодарен ако някой ми каже къде е грешката и защо.
Това е сорса:

#include <stdio.h>

#define IN 1 /* Vatre v dumata sme */
#define OUT 0 /* Izvan dumata sme */
main()

{

   int c, n1, nw, nc, state;

   state = OUT;
   n1 = nw = nc = 0;
   while ((c = getchar()) != EOF) {
      ++nc;

   if (c == '\n')
      ++n1;

   if (c == ' ' || c == '\n' || c = '\t')
      state = OUT;

   else if (state == OUT) {
      state = IN;
      ++nw;
      
      }

   }

   printf ("%d %d %d\n", n1, nw, nc);

}
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Начинаещ в програмирането
« Отговор #1 -: Apr 21, 2009, 21:26 »
Например така
Код
GeSHi (C):
  1. #include <stdio.h>
  2.  
  3. #define IN 1 /* Vatre v dumata sme */
  4. #define OUT 0 /* Izvan dumata sme */
  5. int main( int argc, const char* argv[] )
  6. {
  7.  
  8. int c, n1, nw, nc, state;
  9.  
  10.   state = OUT;
  11.   n1 = nw = nc = 0;
  12.   while ((c == getchar()) != EOF) {
  13.      ++nc;
  14.  
  15.   if (c == '\n')
  16.      ++n1;
  17.  
  18.   if (c == ' ' || c == '\n' || c == '\t')
  19.      state = OUT;
  20.  
  21.   else if (state == OUT) {
  22.      state = IN;
  23.      ++nw;
  24.  
  25.      }
  26.  
  27.   }
  28.  
  29.   printf ("%d %d %d\n", n1, nw, nc);
  30.  
  31. }
Открий купчинката разлики и се замисли над тях. И следващият път, когато задаваш подобен въпрос, обяснявай на C или на C++ се опитваш да пишеш (има някои разлики, без да броим обектите в C++), обяснявай каква е грешката, която ти дава, обяснявай с какъв компилатор и с какви опции компилираш, хубаво би било да обясниш и действието, което очакваш да изпълнява програмата... все неща, които спомагат отговарящите да могат да ти отговорят по-бързо, по-лесно и по-точно ;)

edit: Какво искаш да кажеш в условието на while?
« Последна редакция: Apr 21, 2009, 21:43 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти