Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 3302. Mostrar todas as postagens
Mostrando postagens com marcador 3302. Mostrar todas as postagens

sábado, 18 de dezembro de 2021

URI (BEECROWD) - 3302 - Resposta Certa - Iniciante - C e C++

Outro exercício novo resolvido! Quem mais conseguiu fazer esse?

Antes de resolver qualquer algoritmo do URI (BEECROWD agora), recomendamos seguir os seguintes passos:

  1. Ler todo enunciado do problema.
  2. Ler os tópicos do fórum em caso de dúvidas
  3. Preparar arquivos de entrada para teste, considerando as entradas de exemplo do URI, do udebug e outros valores limite;
  4. Preparar o ambiente de desenvolvimento e utilizar os mesmos parâmetros dos compiladores do URI
  5. Preparar um código-fonte padrão, já contendo a chamada às bibliotecas padrão, pré-processadores, retorno de função e um comando de escrita com "\n", pois no URI a grande maioria dos problemas exige a quebra de linha final.


Plataforma
: URI (BEECROWD)

Problema3302

Enunciado:

Roumes era um aluno acima da média. Nas provas de matemática, ele sempre tirava nota máxima, acertando todas as contas, mas o segredo dele não estava em fazer contas corretamente. Ele interpretava o que via no ambiente a sua volta e conseguia deduzir as respostas para as questões. Você também pode ser alguém especial, igual a Roumes.

Linguagens: C e C++

Solução:

A lógica que usei aqui foi simples. Leio o valor de n, que será não negativo (por isso unsigned int nas duas soluções) e depois vou lendo cada resposta como int (vai saber, pode ser um número negativo, o enunciado não explicita qualquer restrição). Basta, então, formatar a saída no formato solicitado e o aceite vem :)

Código em C:

Usei o while para iterar e a variável i, já utilizando no while com i++ para usar e depois incrementar, não necessitando de mais uma linha para isso. A solução é bem simples, mas se alguém não entender é só comentar!

#include <stdio.h>

int main() {
    
    unsigned int n, i = 0;
    int r;
    scanf("%u", &n);
    
    while (i++ < n) {
        scanf("%d", &r);
        printf("resposta %u: %d\n", i, r);
    }

    return 0;
}



Código em C++:

Na lógica não há mudanças, só troquei a estrutura de repetição utilizada (for em vez de while) e declarei "i" só dentro deste for. O valor de i também não será negativo, então também usei unsigned int.

#include <iostream>

using namespace std;

int main() {
    
    unsigned int n;
    int r;
    cin >> n;
    
    for (unsigned int i = 1; i <= n; i++) {
        cin >> r;
        cout << "resposta " << i << ": " << r << endl;
    }

    return 0;
}

A propósito, vocês preferem o código em texto claro (assim) ou formatado como fiz em outros posts?

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