Logo Hardware.com.br
eduardo96
eduardo96 Novo Membro Registrado
2 Mensagens 0 Curtidas

Structs em C

#1 Por eduardo96 09/05/2016 - 13:17
Galera, to tentando fazer essa questao ,mas no to conseguindo fazer a letra b pois estou com dificuldades em passar por parâmetro. A letra C tbm nao to conseguindo.


Foi feita uma pesquisa nos 26 estados brasileiros para coletar dados sobre acidentes de trânsito e gerar algumas estatísticas. Em cada estado observaram-se os seguintes aspectos: nome do estado, número de veículos que circulam no estado (em 2007) e número de acidentes de trânsito (em 2007). Faça um programa para:
(a) Coletar os dados dos 26 estados e armazenar em um vetor de estruturas. Para tal, construa um procedimento que irá solicitar ao usuário que informe os dados coletados de cada estado;
(b) Informar a maior e a menor número de acidentes de trânsito e o nome dos estados em que eles ocorreram. Para tal, construa um procedimento que receba como parâmetro o cadastro e tenha como parâmetros de saída (por referência) os índices (posição no cadastro) dos estados que possuem as características solicitadas. A exibição dos dados deve ocorrer no programa principal.
(c) Informar o percentual de veículos envolvidos em acidentes de trânsito em cada estado. Para tal, construa uma função que receba como parâmetro o cadastro e o estado e retorne o percentual solicitado;
(d) Informar a média de acidentes no país. Para tal, construa uma função que receba como parâmetro o cadastro e retorne a média solicitada. A exibição da média deve ocorrer no programa principal;
(e) Informar o nome dos estados que estão acima da média de acidentes do país. Para tal, construa um procedimento que receba como parâmetro o cadastro e a media do pais e exiba os dados solicitados.

[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#define[/HASHTAG] TAM 3

struct estado{
char nome[31];
int numveic;
int numacid;
};

void preencher( struct estado v[],int tam){
int i;
for(i=0;i printf("DIGITE O NOME DO ESTADO %d: ",i+1);
gets(v.nome);
}
for(i=0;i printf("DIGITE O NUMERO DE VEICULOS DO ESTADO %s: ",v.nome);
scanf("%d",&v.numveic);
}
for(i=0;i printf("DIGITE O NUMERO DE ACIDENTES NO ESTADO %s: ",v.nome);
scanf("%d",&v.numacid);
}
}

int comp(struct estado v[],int tam){
int maior=0,menor=0,i;
char nomes[31], nomes2[31];
while (i < TAM)
{
if (i == 0) // se i = 0
{
maior = v.numacid;
menor = v.numacid;
}
else
{
if (v.numacid > maior)
{
maior = v.numacid;
strcpy (nomes,v.nome);

}

else if (v.numacid < menor)
{
menor = v.numacid;
strcpy (nomes2,v.nome);
}
}

i++;
}
printf ("\n\nEstado com maior número de acidentes: %s e teve %d acidentes\n", nomes,maior);
printf ("\n\nEstado com menor número de acidentes: %s e teve %d acidentes\n", nomes2,menor);
}



int main(){
struct estado vetor[TAM];
int i;
preencher(vetor,TAM);
comp(vetor,TAM);
}
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
09/05/2016 - 13:41
Poste seu código entre tags [ code ], senão ele perde identação e o [ i ] some
https://www.hardware.com.br/comunidade/v-t/1353986/


int comp(struct estado v[],int tam, int *indMaior) {
//...
*indMaior = i;
//...
}

int main() {
//...
int indMaior;
comp(vetor,TAM, &indMaior);
printf ("\n\nEstado com maior número de acidentes: %s e teve %d acidentes\n", vetor[indMaior].nome, vetor[indMaior].numacid);
//...
}
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal