Ir ao conteúdo

Dois exercícios em C


R0cha

Posts recomendados

Postado

Olá pessoal! Preciso entregar dois exercícios de Linguagem de Programação (em C) até hoje e não consigo fazê-los, alguém poderia me ajudar?

1) Faça um programa que leia um matriz 3x3 e imprima a soma da diagonal principal da matriz e a soma da diagonal secundária;
*Crie uma função para calcular a soma da diagonal principal da matriz. Passe a matriz como parametro.
*Crie uma função que calcule a soma da diagonal secundária da matriz. Passe a matriz como parametro.



2)Crie uma estrutura atleta que contenha: nome, esporte preferido, idade e altura. Escreva um programa que leia os dados de 50 atletas. Faça uma função que mostre o nome do atleta mais alto.

Postado

No primeiro exercício, declare uma variável array bidimensional com suporte a três valores em cada dimensão. Ela representaria a matriz matemática F5Rua4D.gif.

Depois, faça com que o usuário insira os valores de cada parte de cada dimensão da array. Isso pode ser feito com dois loops entrelaçados e com scanf, claro, zelando pela limpeza do buffer de entrada padrão.

Com a matriz pronta, faça as duas funções pedidas. O parâmetro delas pode ser tanto de acordo com a sintaxe de uma array bidimensional quanto com a de um ponteiro para ponteiro.

No escopo das funções, some os elementos das diagonais. Para saber quais dados da array selecionar para isso, pense nos valores da primeira dimensão como indicadores das linhas da matriz e os da segunda dimensão como indicadores das colunas, ou vice-versa GbhmuXl.gif.

No segundo exercício, faça a declaração de uma struct com uma variável para cada informação do atleta. O tipo de dado (int, float, etc) delas deve estar de acordo, além da escolha de variável scalar (simples) ou array (composta).

Essa declaração criaria um novo tipo de dado. Uma variável criada com ele é que seria a estrutura de dados propriamente dita. Um vetor conteria várias dessa.

Então, faça um loop de 50 repetições usando a variável que é incrementada como índice do vetor que contém as estruturas a fim de salvar as informações de um atleta por repetição F5Rua4D.gif.

Após isso, escreva uma função, declare um vetor nela e armazene todas as alturas dos atletas nele. Depois ordene o vetor com a função qsort ou algum algoritmo de ordenação.

Finalmente, procure no vetor de registros pelo registro que contém a maior altura, que seria a da a primeira ou última parte do vetor ordenado. Quando encontrar, obtenha o nome de atleta dele para ter o nome do atleta mais alto e mostrá-lo depois.

Espero ter ajudado GbhmuXl.gif.

Postado

Olá SnakevL,

tirei alguns minutos do meu tempo para poder resolver o exercício 2 que, pelo primeiro olhar me pareceu menos complexo, espero ter ajudado, abraços. ^_^

/*
Criado por Guilherme Soares Valdevieso
Contato: [email protected]
Linguagem: C
Proposta:
- Crie uma estrutura atleta que contenha: nome, esporte preferido, idade e altura.
- Escreva um programa que leia os dados de 50 atletas.
- Faça uma função que mostre o nome do atleta mais alto.
Obs.: Este código não está livre de Bugs, assim como nenhum outro.

*/
#include <stdio.h>

#define ATL_COUNT 50 // Definicao do numero de cadastrados

typedef struct Atleta atleta; //Declaracao da Struct com o Alias "atleta"

struct Atleta{
char nome[50];
char esportePreferido[50];
int idade;
int altura; // em centímetros
};

void BubbleSort(atleta *atl){ // Método BubbleSort com a estrutura atletas como parametro
atleta temp;
int i,j;
for(i=0;i<ATL_COUNT;i++) {
for(j=i+1;j<ATL_COUNT;j++) {
if(atl[i].altura > atl[j].altura) {
temp=atl[i];
atl[i]=atl[j];
atl[j]=temp;
}
}
}
}


int main(int argc, char* argv[]){
int i = 0;
atleta atl[ATL_COUNT];
for (i=0;i<ATL_COUNT;i++) // Loop para o cadastro
{
printf("Digite seu nome: ");
scanf("%s",atl[i].nome);
printf("Qual seu esporte preferido? ");
scanf("%s",atl[i].esportePreferido);
printf("Qual sua idade? ");
scanf ("%d",&atl[i].idade);
printf("Qual sua altura(cm)? ");
scanf ("%d",&atl[i].altura);
printf("===================================================\n");
}
BubbleSort(atl); //Chamada do método BubbleSort

printf("%s é o atleta mais alto com %d centimetros!",atl[ATL_COUNT-1].nome,atl[ATL_COUNT-1].altura);
return 0;
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!