Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Estou com dificuldade de resolver esse exercício, alguém poderia me ajudar?

Prof. Augusto passou um conjunto de problemas aos alunos, e deu um mês para que eles os resolvessem. No final do mês os alunos mandaram o número de problemas resolvidos corretamente. A promessa do brilhante didata era reprovar sumariamente o último colocado da competição, ou seja, sem que ele tivesse a oportunidade de fazer a prova N2 ou a Sub.

Os alunos seriam ordenados conforme o número de problemas resolvidos, com empates resolvidos de acordo com a ordem alfabética dos nomes (não há homônimos na turma).

Isso fez com que alunos com nomes iniciados nas últimas letras do alfabeto se esforçassem muito nas tarefas, e não compartilhassem suas soluções com colegas (especialmente aqueles cujos nomes começassem com letras anteriores).

Sua tarefa neste problema é escrever um programa que lê os resultados dos alunos do professor e imprima o nome do infeliz reprovado.

Entrada A entrada é composta de diversas instâncias. A primeira linha de cada instância consiste em um inteiro n (1 <= n <= 100) indicando o número de alunos na competição.

Cada uma das n linhas seguintes contém o nome do aluno e o número de problemas resolvidos por ele. O nome consiste em uma sequência de letras [a-z] com no máximo 20 letras e cada time resolve entre 0 a 10 problemas.

A entrada termina com o valor 0 para a variável n.

Saída Para cada instância, você deverá imprimir um identificador Instancia k, onde k é o número da instância atual. Na linha seguinte imprima o nome do infeliz reprovado. Após cada instância imprima uma linha em branco.

5 respostas

Olá Pedro, tudo bem?

Qual sua dúvida?

Estou travado nessa questão, usei uma matriz para guardar o nome dos alunos , mas não sei como "atribuir" a nota a eles, fica descompasado, meu código esta no pc,assim que chegar em casa insiro aqui

#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
int main()
{setlocale(LC_ALL, "Portuguese");
    int n;
    printf("Digite o numero de alunos na competição\n");
    scanf("%d", &n);

    while(n < 1 && n >= 100){
    printf("Digite o numero de alunos na competição\n");
    scanf("%d", &n);
    }
    char alunos[20][n];
    int problemas[1][n];

    for(int i = 0; i < n; i++){
            printf("Digite o nome do aluno\n");
            gets(alunos+i);
    }
    for(int i = 0; i < n; i++){
            printf("Digite o nome do aluno %s", (alunos+i));
            gets(alunos+i);
    }

    return 0;
}

minha ideia é salvar todos participantes em alunos, mas não consigo atribuir nota a eles, o que me impede de fazer a comparação e caso coloque em ordem alfabética, as notas vão ficar trocadas

Ele ainda esta ignorando o meu while qnd faço um teste para nºs maiores de 100

solução

Alguem poderia me ajudar?