Zadanie ze strony SPOJ.com - stos

0

Próbuję zrobić to zadanie: link. Co to znaczy "Na wejście programu podana zostanie pewna nieokreślona liczba zestawów danych."? Napisałem taki kod, no nie działa bo pobieram z klawiatury ile ma być tych zestawów danych, ale nie wiem jak inaczej to zrobić.

#include <stdio.h>

int main()
{
   int tab[10]={0};
   int a;
   scanf("%d", &a);
   for(int m=0; m<a; m++)
   {
      char x;
      int liczba;
      getchar();
      scanf("%c", &x);
      if(x == '+')
      {
          
          scanf("%d", &liczba);
          int k = 0;
          while(tab[k])
           {
              k++;
           }
          if(k>9)
          {
           printf(":(\n");
          }
          else
          {
          tab[k] = liczba;
          printf(":)\n");
          }
      }
      else if(x == '-')
      {
          if(tab[0]==0)
          {
              printf("BLAD\n");
              continue;
              
          }
         for(int j = 9; j >= 0; j--)
         {
             if(tab[j] != 0)
             {
                 printf("%d\n", tab[j]);
                 tab[j] = 0;
                 break;
             }
         }
      }
      
   }

    return 0;
}

1

Podpowiedź - scanf zwraca wartość, zobacz co ta wartość oznacza.

0
#include <stdio.h>

#define size 10

int main()
{
	int top=0,stack[size]={0};
	for(char cmd;scanf(" %c",&cmd)==1;)
	{
		if(cmd=='-')
		{
			if(top) printf("%d\n",stack[--top]);
			else printf(":(\n");
		}
		else //if(cmd=='+')
		{
			int value;
			scanf(" %d",&value);
			if(top<size)
			{
				stack[top++]=value;
				printf(":)\n");
			}
			else printf(":(\n");
		}
	}
    return 0;
}
0

Czytasz, aż będzie EOF. To się sprawdza przez odpowiednie funkcje, bo może też być tak, że wystąpił błąd
.

1 użytkowników online, w tym zalogowanych: 0, gości: 1