Pesquisar este blog

Livros Recomendados

sexta-feira, 2 de outubro de 2020

URI (BEECROWD) - 2137 - A Biblioteca do Senhor Severino - Strings - C e C++

A Biblioteca do Senhor Severino é um problema da categoria Strings, disponibilizo aqui três soluções.

Plataforma: URI (BEECROWD)

Problema2137

Enunciado:
Em uma pacata cidade do interior, o senhor Severino decidiu montar a própria biblioteca, já que coleciona vários livros desde sua juventude. Como ele não sabe programar, pediu ajuda ao neto para criar um programa que cadastre e ordene seus livros pelo código. Porém, seu neto ainda está no ensino fundamental, e como sabe muito pouco de programação, acabou criando um programa que somente cadastra os livros, mas não os ordena. Desse modo, o senhor Severino recorreu a você, pois sabe de suas habilidades com programação. Sua tarefa é simples: ordenar os cadastros dos códigos dos livros.

Linguagem: C e C++

Solução:

Código em C:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int compara(const void *p1, const void *p2) {
    return strcmp(p1, p2);
}
int main() {
    int n, i;
    char a[1000][5];
    while (scanf("%d ", &n) != EOF) {
        for (i = 0; i < n; i++)
            scanf("%s", a[i]);
        qsort(a, n, 5, compara);
        for (i = 0; i < n; i++)
            printf("%s\n", a[i]);
        memset(a, 0, sizeof(a));
    }
    return 0;
}

Código em C++:
A cada iteração, todos os livros são armazenados como string no vector colection. Após todos serem armazenados, a função sort é usada para ordená-los e todos são impressos na saída.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;


int main() {
 int n;
 vector<string> colection;
 while(cin >> n){
  colection.clear();
  string book;
  while(n--){
   cin >> book;
   colection.push_back(book);
  }
  sort(colection.begin(),colection.end());
  for(int i=0; i<colection.size();i++){
   cout << colection[i] << endl;
  }

 }

    return 0;
}

Código em C++ (solução alternativa):

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
    int n, i;
    vector<string> a;
    string str;
    while (cin >> n) {
        for (i = 0; i < n; i++) {
            cin >> str;
            a.push_back(str);
        }
        sort(a.begin(), a.end());
        for (i = 0; i < n; i++)
            cout << a.at(i) << endl;
        a.clear();
    }
    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas