Wprowadzenie liczb i wypisanie ich na wyjście gdy nastąpi podanie 2x21

0

Witam

Chciałem prosić o pomoc w programie.
Otóż chcę zrobić program , który będzie wczytywał liczby i gdy napotka na 2x21 wyświetli wszysstkie wcześniej wpisane liczby.
np. 32,34,54, 21,21 32,34,54 . Mój problem polega na tym , że trzeba zapisać ( najlepiej w tablicy moim zdaniem) te liczby , i właśnie z tym nie mogę sobie poradzić . Pozostawiam sobie problem z 2x21 .

Doszedłem tylko do tego :

int main ()
{
	int aktualna ;
	int poprzednia ;
	int a;
	int i;
	int tab[10];

	do {
		scanf("%d" ,&a);
	}
	while (a==42) ;
	
	return 0 ;

} 

Próbowałem coś takiego , ale pewnie nieżle namieszałem i nic z tego :


int main ()
{
	int aktualna ;
	int poprzednia ;
	int a;
	int i;
	int tab[10];

	do {
		scanf("%d" ,&a);
		{
		for(i=0;i<10;i++)
			a=tab[i];
		if (a==42) printf("%d" , tab[i]);
		}
		

	}
	while (a!=42) ;

	return 0 ;

}
1

Przypisanie to:
cel = źródło a nie odwrotnie!
tab[i] = a

0

No tak, pętle for nie są opisane w żadnym kursie programowania C/C++

#include <stdio.h>

int main ()
  {
   int y,x,tab[2][21];

   for(y=0;y<2;++y) for(x=0;x<21;++x) scanf("%d",&tab[y][x]);
   return 0 ;
  } 
0

No to doszedłem do tego :

int main ()
{
        int aktualna ;
        int poprzednia ;
        int a;
        int i;
        int tab[10];
 
        do {
                scanf("%d" ,&a);
                {
                for(i=0;i<10;i++)
                        tab[i] = a;
                }
 aktualna=a;
 poprzednia=aktualna;
		
        }
        while ((aktualna !=21 ) && (poprzednia !=21)) ;
		printf("%d" , tab[i]);
        return 0 ;
}

Wyłącza się na 21 , ale gdy wywołuję printf wyświetla mi jakiś nie ciekawy wynik. No i jeszcze wyłącza się na jednym 21 , a powinno na dwóch podanych 21.
Może mnie ktoś naprowadzić co dalej powinienem zrobić ??

dodanie znacznika <code class="c"> - fp

0

A ile wynosi [i] w miejscu twojego printfa? Bo moim zdaniem jest już o 1 element za tablicą...

0

Twoje pytanie wygląda (przynajmniej dla mnie) następująco:

Piszę artykuł na razie doszedłem do tego:
dsa ktlcrdkasd fldshnflk jasdf hsdjkf kfghdsafgdsakjfgdska
Może mnie ktoś naprowadzić co dalej powinienem zrobić ??

Możesz wyraźnie powiedzieć co próbujesz zrobić?

0

Program ma polegać na tym , że podaję liczby jeżeli wprowadzę dwa razy pod rząd liczbę 21 to ma wypisać dotychczas wprowadzone liczby i zakończyć działanie .

0

1 21 21 - też się liczy jako zakończenie czy tylko:
1 2 21 21 ?

0

Tak też.

1

To się bierz za naukę, bo to co tam kombinowałeś nawet blisko nie leżało:

#include <stdio.h>
 
int main ()
  {
   int i,n=0,p=0,v=0,tab[1000];
   while((p!=21)&&(v!=21))
     {
      p=v;
      scanf("%d",&v);
      tab[n++]=v;
     }
   for(i=0;i<n;++i) printf("%d\n",tab+i);
   return 0 ;
  }
0

Temat można uznać za zamknięty .
Dzięki wszystkim za pomoc , a program działa i wygląda tak.

#include <stdio.h>
 
int main () {
   
        int n;
 
        while(scanf("%d",&n)){
                printf("%d\n",n);
                if(n==21) {
                        scanf("%d",&n);
                        printf("%d\n",n);
                        if(n==21)
                                break;
                }
        }
 
        return 0;
} 

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