Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em exercicio C


G.Meneses

Pergunta

segue o enunciado:

Observadores especializados iam à pista medir o tempo de cada um dos N carros, numerados de 1 a N, em cada uma das M voltas,

anotando então os resultados em tabelas para posterior análise por parte das equipes e dos jornalistas. Muitos

erros eram introduzidos nesse processo, e a organização decidiu informatizar todo o sistema.

A ACM percebeu que o esforço necessário para a construção do sistema seria grande, e optou por contar com a

ajuda de uma equipe de programadores. Percival foi contratado para escrever a parte do software que determina

quais foram os carros vencedores, mas está com diculdades e pede sua ajuda. A sua tarefa, neste problema,

é determinar os três carros melhor colocados, fornecidos os tempos que cada carro levou para completar cada

volta da corrida.

exemplo: entrada:

3 1

1

2

3

saida:

1

2

3

exemplo 2: entrada:

5 2

3 7

2 5

1 1

15 2

2 2

saida:

3

5

2

Eu consegui executar o 1º exemplo, porém ao entrar 2 ou varios valores de voltas (m) eu não sei como somá-los, segue também o codigo q eu fiz.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,j,i,m,v[11],x;
    
    scanf("%d %d", &n, &m);
    
    for(i = 0; i < n; i++) {
          v[i] = (0, i);
        for (j=0; j < m; j++){
            scanf("%d", &x);
            v[i] =+ x;              
            }
                        }
        for(i = 0; i < 3; i++)
        printf("%d\n", v[i]);
        
        getch(0);
    
}

Editado por G.Meneses
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

essa parte do codigo eu peguei do C++, ai transformei pra C só q eu errei e não to sabendo resolver,

Isso é um exemplo de Array, usando v = make_pair(0, i+1); e depois usado v.first e v.second.

O codigo q peguei em C++ tava assim:

#include <cstdio>
#include <algorithm>

using namespace std;

#define MAX 110

pair<int, int> v[MAX];

int main()
{
  int n, m;

  scanf(" %d %d", &n, &m);

  for(int i = 0; i < n; i++){
    v[i] = make_pair(0, i+1);
    for(int j = 0; j < m; j++){
      int x;
      scanf(" %d", &x);
      v[i].first += x;
    }
  }
  sort(v, v+n);
  for(int i = 0; i < 3; i++)
    printf("%d\n", v[i].second);

  return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz uma alteração no codigo, mas na hora de testar ainda continua errado a saida do 2º exemplo produz 7, 5, 1 quando o certo seria 3, 5, 2

o 1º exemplo funciona perfeitamente, mas ao passar 2 valores para m não batem os resultados.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,j,i,m,v[11][11],x;
    
    scanf("%d %d", &n, &m);
    
    for(i = 0; i < n; i++) {
          v[i][i] = (0, i);
        for (j=0; j < m; j++){
            scanf("%d", &x);
            v[i][i] =+ x;              
            }
                        }
        for(i = 0; i < 3; i++)
        printf("%d\n", v[i][i]);
        
        getch(0);
    
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...