Ir ao conteúdo
  • Cadastre-se

Vetores e Estruturas (STRUCTS) - Linguagem C


mateusherzog

Posts recomendados

1- Faça um programa que leia um vetor de inteiros e “remova” os elementos contendo o valor 0 (transfira- os para o final do vetor). Mostre o vetor resultante na tela. Ex.: O vetor 0 1 3 -1 0 0 5 ficaria: 1 3 -1 5 0 0 0.

------------------

2- Declare o vetor "carros" com 5 posições do tipo da estrutura definida abaixo. Faça a leitura de "carros" e em seguida mostre seu conteúdo na tela.

a. nome (máximo 10 caracteres)

b. marca (máximo 15 caracteres)

c. ano (inteiro)

d. cor(máximo 10 caracteres)

e. preco (real)

--------------------------------------

3- Faça um programa para ler o nome e a média de 5 alunos. Ao final exiba o nome do aluno que possui a maior média. Use uma estrutura para representar os dados do aluno.

Link para o comentário
Compartilhar em outros sites

Olá mateusherzog,

tirei um pedaço do meu tempo e resolvi os 3 exercícios. Use-os para estudar.

Basicamente utilizei alocação dinâmica de memória e structs.

Exercício 1



Created by Guilherme Soares Valdevieso
All Rights Reserved Inc.

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

void zeroSort(int* vector, int size){
int x,y;
for(x=0;x<size;x++)
for(y=0;y<size-1;y++)
{
if (vector[y] == 0 && vector[y+1] != 0){
vector[y] = vector[y+1];
vector[y+1] = 0;
}
}
}

int main(){
int* vector;
int vSize;
int i;
printf("Qual o tamanho do vetor? ");
scanf("%d",&vSize);
vector = malloc(sizeof(int) * vSize);
for(i=0;i<vSize;i++){
printf("Valor da posição %d: ",i);
scanf("%d",&vector[i]);
}
zeroSort(vector,vSize);
for(i=0;i<vSize;i++)
printf("%d\n",vector[i]);
return 0;
}
/*1- Faça um programa que leia um vetor de inteiros e “remova” os elementos contendo o valor 0 (transfira- os para o final do vetor). Mostre o vetor resultante na tela. Ex.: O vetor 0 1 3 -1 0 0 5 ficaria: 1 3 -1 5 0 0 0. 

Exercício 2


2- Declare o vetor "carros" com 5 posições do tipo da estrutura definida abaixo. Faça a leitura de "carros" e em seguida mostre seu conteúdo na tela.

Created by Guilherme Soares Valdevieso
All Rights Reserved Inc.

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

typedef struct carro Carro;

struct carro{
char nome[10];
char marca[15];
int ano;
char cor[10];
double preco;
};

void lerCarros(Carro *c, int vSize){
int i;
for(i=0;i<vSize;i++){
printf("Nome:\t%s\n",c[i].nome);
printf("Marca:\t%s\n",c[i].marca);
printf("Ano:\t%d\n",c[i].ano);
printf("Cor:\t%s\n",c[i].cor);
printf("Valor:\t%lf\n",c[i].preco);
}
}

int main(){
int vSize;
int i;
Carro *c;
printf("Quantos carros ira cadastrar? ");
scanf("%d",&vSize);
c = malloc(sizeof(Carro) * vSize);
for(i=0;i<vSize;i++){
printf("Qual o nome do carro? ");
scanf("%s",c[i].nome);
printf("Qual a marca do carro? ");
scanf("%s",c[i].marca);
printf("Qual o ano do carro? ");
scanf("%d",&c[i].ano);
printf("Qual a cor do carro? ");
scanf("%s",c[i].cor);
printf("Qual o valor do carro? ");
scanf("%lf",&c[i].preco);
}
lerCarros(c,vSize);
return 0;
}
/*

Exercício 3


3- Faça um programa para ler o nome e a média de 5 alunos. Ao final exiba o nome do aluno que possui a maior média. Use uma estrutura para representar os dados do aluno.

Created by Guilherme Soares Valdevieso
All Rights Reserved Inc.

*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct aluno Aluno;

struct aluno{
char nome[50];
double media;
};

void swap(Aluno *i, Aluno *j) {
Aluno t;
//t.nome = i->nome;
strcpy(t.nome,i->nome);
t.media = i->media;
*i = *j;
// j->nome = t.nome;
strcpy(j->nome,t.nome);
j->media = t.media;
}


void alunoSort(Aluno *al,int vSize){
int x,y;
for(x=0;x<vSize;x++)
for(y=0;y<vSize-1;y++)
{
if(al[y].media < al[y+1].media){
swap(&al[y],&al[y+1]);
}
}
}

void listarAlunos(Aluno *al,int vSize){
int i;
for(i=0;i<vSize;i++){
printf("%dº lugar\n",i+1);
printf("Nome:\t%s\n",al[i].nome);
printf("Média:\t%0.2lf\n",al[i].media);
}
}

int main(){
Aluno *al;
int vSize;
int i;
printf("Quantos alunos serão cadastrados? ");
scanf("%d",&vSize);
al = malloc(sizeof(Aluno) * vSize);
for(i=0;i<vSize;i++){
printf("Qual é o nome do aluno? ");
scanf("%s",al[i].nome);
printf("Qual é a média anual do aluno? ");
scanf("%lf",&al[i].media);
}
alunoSort(al,vSize);
listarAlunos(al,vSize);
return 0;
}
/*

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Gui, me ajude nesse codigo.

Não consegui ver o que estou errando, o erro eu não conheço.

/*ATPS Prof Salgado*/#include <stdio.h>#include <stdlib.h>#include <stdbool.h>struct cadastro{	char nome[40];	int idade;	char cpf[11];}; int cont;//Variavel contador.cadastro[10]; //A struct cad1 só pode receber até 10 cadastros./*Função que recebe os valores de cada variavel.*/void menu_cadastro(){	printf ("\n\n");	if (cont == 10 || cont > 10) //se cont igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel cadastrar mais clientes!\n");        return;    }    else    {        printf ("\nNome: ");        gets(cadastro[cont].nome);        fflush(stdin);        printf ("\n Idade: ");        scanf ("%d", cadastro[cont].idade);        fflush(stdin);        printf ("\nCPF: ");        gets (cadastro[cont].cpf);        fflush(stdin);    }}main(){    menu_cadastro();    system ("Pause");}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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!