Zadanie z kolokwium - C / Ada95

19Radek88
Użytkownik
Użytkownik
Posty: 105
Rejestracja: 2 lis 2007, o 21:01
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 14 razy
Pomógł: 4 razy

Zadanie z kolokwium - C / Ada95

Post autor: 19Radek88 »

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... : ]
MGT
Użytkownik
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

Post autor: MGT »

Pospolity problem algorytmiczny
[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);
}
19Radek88
Użytkownik
Użytkownik
Posty: 105
Rejestracja: 2 lis 2007, o 21:01
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 14 razy
Pomógł: 4 razy

Zadanie z kolokwium - C / Ada95

Post autor: 19Radek88 »

Dzięki
ODPOWIEDZ