Program pobiera tablicę dynamicznie (N wyrazow podawanych przez użytkownika). Program znajduje wśród liczb z tej tablicy najdłuższy ciąg rosnący (np. 1 5 2 3 4 8 1 2 3 4 5 6 2 6) oraz zwraca numer pozycji pod jaką w tablicy pojawia się wyraz pierwszy i ostatni tego ciągu. Program do napisania w C, ale Ada też może być...
PS. Na kole nie miałem na to żadnego konstruktywnego pomysłu... : ]
Zadanie z kolokwium - C / Ada95
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Zadanie z kolokwium - C / Ada95
Pospolity problem algorytmiczny
[tutaj nieco zmodyfikowany]
tu masz jeszcze kod na szybko, powinien działać, ale raczej nie jest optymalny:
[tutaj nieco zmodyfikowany]
tu masz jeszcze kod na szybko, powinien działać, ale raczej nie jest optymalny:
Kod: Zaznacz cały
#include <stdio.h>
#define M 14
int main(void)
{
int ciag[M] = { 1,5,2,3,4,8,1,2,3,4,5,6,2,6 };
int temp,
temp_dlugosc,
temp_min,
dlugosc,
min,
max,
i;
temp_dlugosc = 0;
dlugosc = 0;
temp_min = 0;
min = 0;
temp = ciag[0];
for(i=1;i<M;i++)
{
if(ciag[i]>temp)
{
temp = ciag[i];
temp_dlugosc++;
}
else
{
if(temp_dlugosc>dlugosc)
{
dlugosc = temp_dlugosc;
min = temp_min;
max = i-1;
}
temp_min = i;
temp_dlugosc = 0;
temp = 0;
}
}
printf("%d %d
",min,max);
}