Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Trabalho realizado por Leandro Soares.
- // Exercicio criado por Eng. Jorge Carvalho.
- #include <stdio.h>
- #include <stdlib.h>
- #define TRUE 1
- int main()
- {
- // Declaracao e Ini. de var's.
- int npred,i, A, B, maior, qt, alturas[100], maiores[100], idx;
- npred=A=B=maior=qt=0;
- // Input Quant. de Predios.
- printf("Introduza o n de predios: ");
- scanf("%d", &npred);
- for(i=0;i < npred; i++) // Ciclo de input das alturas dos predios consuante o num de predios.
- {
- printf("\n Altura %d:", i+1);
- scanf("%d",&alturas[i]);
- }
- printf("\n Intervalos: "); // Intervalos dos numeros dos predios.
- scanf("%d-%d", &A, &B);
- // Inicio da contagem do maior predio e a respectiva entrada na array.
- if( A >= 1 && A <= B && B <= 100 && A <= npred)
- {
- for(i=A, idx=0; i < B ; i++) // Ciclo normal de array, mudanca apenas em B (ultimo predio).
- {
- if( alturas[i-1] >= maior ) // Se uma altura na array for maior ou igual ao maior numero actual, continuar.
- {
- if( maior != alturas[i-1] && alturas[i-1] > maior ) // Se a altura for maior que o anterior numero maior, continuar.
- {
- // Este ciclo serve para reiniciar a array maiores[idx] quando o numero maior muda.
- for(idx=0;idx < qt;idx++) // Ciclo normal de array, para quando chegar a quantidade de numeros maiores anteriormente existentes.
- maiores[idx] = 0;
- qt=0; //
- idx=0; // Reiniciar var's, pois, o numero maior foi alterado logo as contagens comecam denovo.
- }
- maior = alturas[i-1]; // O numero maior e igual a altura do predio cuja altura e maior.*
- qt++; // Contagem da quantidade de numeros iguais (maiores).
- maiores[idx++] = i; // Anotacao dos numeros maiores.
- }
- // * E alturas[<i-1>], porque o indice começa em 0 e os predios em 1.
- }
- system("cls"); // Limpeza do ecra.
- printf("Altura: %d\n Quantidade: %d\n", maior, qt); // Output do numero maior e a respectiva quantidade.
- for(i=0; i < qt ; i++) // Ciclo normal de array, acaba quando atinge a quantidade max de numeros maiores.
- {
- printf("\n \tPredio %d: %d",i+1 ,maiores[i]); // Output do(s) numero(s) do(s) predio(s) cuja(s) altura(s) e(sao) a(s) maior(es).
- }
- }
- printf("\n\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement