Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- int testes; // quantidade de sequencias q vou procurar
- int loop = 0;
- printf("digite a quantidade de testes: ");
- scanf("%d", &testes);
- int sequencias [testes][100];
- int tamanho [testes];
- while(loop<testes){
- printf("\ndigite o tamanho da sequencia %d: ", loop+1);
- scanf("%d", &tamanho[loop]);
- for(int i = 0 ; i < tamanho[loop]; i++){
- printf("\ndigite o valor %d do vetor %d: ", i+1 , loop+1);
- scanf("%d", &sequencias[loop][i]);
- }
- loop++;
- }
- loop = 0;
- printf("printando os vetores: ");
- while (loop < testes){
- printf("\nsequencia %d: ", loop+1);
- for(int i = 0 ; i < tamanho[loop] ; i++){
- printf("%d, ", sequencias[loop][i]);
- }
- loop++;
- }
- int checagem = 0 ; //quantidade de vetores a serem analisados
- int inicio[testes]; // começo da maior sequencia
- int fim[testes]; // fim da maior sequencia
- int maiorcompri[testes]; // tamanho da maior sequencia
- int inicioaux[testes]; // iteração do começo da sequencia atual
- int fimaux[testes]; // iteração do fim da sequencia atual
- int comprimento[testes]; // tamanho da sequencia atual
- for(int j = 0 ; j < testes ; j++){
- inicio[j] = 0;
- fim[j] = 0; //esse for existe apenas pra setar todos os valores dos vetores acima em 0
- maiorcompri[j] = 0;
- inicioaux[j] = 0;
- inicioaux[j] = 0 ;
- comprimento[j] = 0;
- }
- loop = 1; // pra comparar o segundo elemento com o primento, e assim em diante
- while(checagem < testes){
- while(loop < tamanho[checagem]){
- if(sequencias[checagem][loop] < sequencias[checagem][loop-1]){
- fimaux[checagem] = loop;
- comprimento[checagem] = fimaux[checagem]-inicioaux[checagem]+1;
- }
- else{ //checagem pra ver se essa é a maior sequencia até o momento
- if(comprimento[checagem] > maiorcompri[checagem]){
- inicio[checagem] = inicioaux[checagem];
- fim[checagem] = fimaux[checagem];
- maiorcompri[checagem] = comprimento[checagem];
- }
- inicioaux[checagem] = loop;
- fimaux[checagem] = loop;
- comprimento[checagem] = 1;
- }
- loop++;
- }
- if(comprimento[checagem] > maiorcompri[checagem]){
- inicio[checagem] = inicioaux[checagem];
- fim[checagem] = fimaux[checagem];
- maiorcompri[checagem] = comprimento[checagem];
- }
- loop = 0;
- checagem++;
- }
- int showfinal = 0;
- int auxtamanho = 0;
- printf("\n\n-----hora de printar as coisas----\n\n");
- for(int k = 0; k < testes ; k++){
- printf("inicio %dº: %d\nfim %dº: %d\ncomprimento %dº: %d\n",k+1, inicio[k], k+1, fim[k], k+1, comprimento[k]);
- }
- printf("\n\n---hora de printar mais coisas---\n\n");
- while(showfinal<testes){
- for(int i = inicio[showfinal]; i <= fim[showfinal]; i++){
- printf("%d ", sequencias[showfinal][i]);
- }
- printf("\n");
- showfinal++;
- }
- return(0);
- }
Add Comment
Please, Sign In to add comment