Jump to content
Fórum Script Brasil
  • 0

Ajuda em exercicio C


G.Meneses

Question

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);
    
}

Edited by G.Meneses
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...