Program w C - tworzenie ciągów

wardinho
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 13 gru 2006, o 21:59
Płeć: Mężczyzna
Lokalizacja: Warszawa

Program w C - tworzenie ciągów

Post autor: wardinho »

Witam!
Mam napisać program na zaliczenie w języku C. Nie moge sobie z nim poradzić
Program ma wczytywac z klawiatury 10 liczb całkowitych i wypisac wszystkie ciągi arytmetyczne rosnace i malejące jakie tworzą te liczby.
Prosze o pomoc.
Pozdrawiam.
edit:
#include
int a,b,c,d,e,f,g,h,i,j;
main(){
printf("Podaj dziesięć liczb naturalnych
");
printf("Podaj liczby od najmniejszej do największej
");
if (scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j)&&(a
Ostatnio zmieniony 13 gru 2006, o 22:43 przez wardinho, łącznie zmieniany 2 razy.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Program w C - tworzenie ciągów

Post autor: kadiii »

Witaj, twój program ma wiele błędów - nie poprawiam go. Do pobierania 10 liczb używaj tablic i jakiejś pętli, znak równości w c to ==(pojedyńczy oznacza przypisanie). Poza tym składnia ci się "sypie", poczytaj trochę na pewno pójdzie ci lepiej. Za to, że choć próbowałeś wrzucam kod - wypisuje wszystkie ciągi arytmetycznerosnące i malejące z kolejnych liczb - chyba o to ci chodziło ?
przykład dla ciągu 1 2 3 4 5 6 3 3 9 10
1 2 3 4 5 6 (pomijam podciągi typu 1 2, 1 2 3, 1 2 3 4 itp.)
6 3
3 9
9 10

Kod: Zaznacz cały

//program wypisuje rozne(bez podciagow) podciagi arytmetyczne rosnace i malejace zadanego ciagu
#include <stdio.h>
main()
{
int i,t[12],j,pocz,koniec,r,n=10;
printf("Podaj 10 liczb
");
for(i=1;i<=n;i++)
 {
  scanf("%d",&t[i]);
 }
r=t[2]-t[1];//rożnica ciagu
pocz=1;
koniec=2;
for(i=2;i<=n;i++)
{ 
  if(t[i+1]-t[i]==r)//jeżeli ciąg biegnie dalej
  {
   koniec++;//zwiększamy ciąg
  }
  else//jeżeli ciąg się "urwał"
  {
   if(r!=0)//pomijamy ciąg stały
   {
    for(j=pocz;j<=koniec;j++)//wypisujemy
    {
     printf("%d ",t[j]);
    }
   printf("
");
   }
   pocz=i;
   koniec=i+1;
   r=t[i+1]-t[i];
  }
}
return 0;
} 
W razie wątpliwości pytaj. Pozdrawiam
ODPOWIEDZ