that_one_nigga_you_k

solução genial pra catar sequencias

Jun 26th, 2023 (edited)
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.     int tamanho;
  5.  
  6.     printf("diga o tamanho do vetor: ");
  7.     scanf("%d", &tamanho);
  8.  
  9.     int sequencia[tamanho];
  10.  
  11.     printf("digite os elementos do vetor:\n");
  12.     for (int loop= 0; loop < tamanho; loop++) {
  13.         scanf("%d", &sequencia[loop]);
  14.     }
  15.  
  16.     int inicio = 0;   // começo da maior sequencia
  17.     int fim = 0;     // fim da maior sequencia
  18.     int maiorcompri = 0;   // tamanho da maior sequencia
  19.  
  20.     int inicioaux = 0;  // iteração do começo da sequencia atual
  21.     int fimaux = 0;    // iteração do fim da sequencia atual
  22.     int comprimento = 0; // tamanho da sequencia atual
  23.  
  24.     int loop = 1; // pra comparar o segundo elemento com o primento, e assim em diante
  25.  
  26.     while (loop < tamanho) {
  27.         if (sequencia[loop] < sequencia[loop- 1]) {
  28.             fimaux = loop;
  29.             comprimento = fimaux - inicioaux + 1;
  30.         } else {
  31.             // checa se a sequencia atual é maior que a maior já vista
  32.             if (comprimento > maiorcompri) {
  33.                 inicio = inicioaux;
  34.                 fim = fimaux;
  35.                 maiorcompri = comprimento;
  36.             }
  37.             // reseta a sequencia atual
  38.             inicioaux = loop;
  39.             fimaux = loop;
  40.             comprimento = 0;
  41.         }
  42.         loop++;
  43.     }
  44.  
  45.     // check final da maior sequencia
  46.     if (comprimento > maiorcompri) {
  47.         inicio = inicioaux;
  48.         fim = fimaux;
  49.         maiorcompri = comprimento;
  50.     }
  51.     int aux;
  52.     // print da maior
  53.     printf("maior sequencia decrescente: ");
  54.     for (int j = inicio; j <= fim; j++) {
  55.         printf("%d ", sequencia[j]);
  56.         aux = j;
  57.     }
  58.     printf("\n%d", sequencia[aux]);
  59.  
  60.     return 0;
  61. }
  62.  
Add Comment
Please, Sign In to add comment