Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.67 KB | None | 0 0
  1. /*
  2.  * File:   main.c
  3.  * Author: pmargreff
  4.  * link: https://www.urionlinejudge.com.br/judge/pt/problems/view/1069
  5.  * Created on 1 de Janeiro de 2015, 22:29
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. void limparBuffer(void);
  12. void ler(char vetor[]);
  13. int contador(char vetor[]);
  14.  
  15. int main(int argc, char** argv) {
  16.     int casos; // número de casos de teste
  17.     int n;
  18.     int diamantes; // aponta para número de diamantes
  19.     char vetor[1000]; //variável para armazenar a entrada
  20.  
  21.     scanf("%d", &casos);
  22.  
  23.     for (n = 0; n < casos; n++) {
  24.         limparBuffer();
  25.         ler(vetor);
  26.         diamantes = contador(vetor);
  27.         printf("%d\n", diamantes);
  28.     }
  29.     return (EXIT_SUCCESS);
  30. }
  31.  
  32. //limpa o buffer consumindo todos caracteres até encontrar \n ou EOF
  33.  
  34. void limparBuffer(void) {
  35.     char c;
  36.     while ((c = getchar()) != '\n' && c != EOF);
  37. }
  38.  
  39. //le com scanf até \n ou os 1000 primeiros caracteres0
  40.  
  41. void ler(char vetor[]) {
  42.     scanf("%1000[^\n]s", vetor);
  43. }
  44.  
  45. /*
  46.  * percorre todo o vetor, se encontrar a parte esquerda de um diamante
  47.  * percorre o mesmo vetor em outro laço procurando uma parte direita
  48.  * do diamante para se completar, quando encontra incrementa o contador
  49.  * e substitui o '>' por um ponto, para não completar o mesmo diamante
  50.  * com mais de uma parte direita
  51.  */
  52.  
  53. int contador(char vetor[]) {
  54.     int i, j, cont = 0;
  55.  
  56.     for (i = 0; vetor[i] != '\0'; i++) {
  57.         if (vetor[i] == '<') {
  58.             for (j = i; vetor[j] != '>' && vetor[j] != '\0'; j++) {
  59.             }
  60.             if (vetor[j] == '>') {
  61.                 cont++;
  62.                 vetor[j] = '.';
  63.             }
  64.         }
  65.     }
  66.     return cont;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement