1 – 11 de 11
Anônimo Anônimo disse...

Faltou declarar "count" ates do primeiro struct e por um "getch();" antes de return(0); mas o programa depois destas alterações rodou normalmente.

Gostei muito das apostilas, as aulas foram ótimas....

Parabéns!

14 de julho de 2013 às 14:14

Anônimo Richard Lopes disse...

É preciso adicionar o método getchar();
depois do método scanf(); para a nota de física, para que o método gets(); não fique pegando o carácter '\n' como nome do aluno 2 a 5.

11 de dezembro de 2014 às 12:20

Anônimo Anônimo disse...

Olá!

Como faço para ler um struct dentro de outro?
Ex:
Escreva um programa que crie uma lista de 20 alunos, onde os nós são do tipo Aluno (definido
abaixo). Peça para ser digitada a matrícula e o nome dos 20 alunos. Para cada um, verificar se o
aluno já está na lista: se estiver, imprimir o seu nome; se não estiver, inseri-lo na lista. Não há dois
alunos com a mesma matrícula.

struct aluno
{
int matricula;
char nome[30];
};

struct Lista
{
struct aluno vetor[MAX];
int num;
};

struct Lista l[2];

int i;

for(i=0;i<2;i++)
{
printf("Aluno %d", i+1);
printf("\nRegistro:"); scanf("%d",&l[i].vetor);
num = i;
}

COMO FAÇO PARA A PARTE DA MAIN SER LIDA CERTO?

Obrigada e parabéns pelo blog.

4 de junho de 2015 às 14:49

Blogger Unknown disse...

O c progressivo é muito bom, sempre estudo com ele.

Como uso o netbeans(ubuntu) precisei fazer algumas modificações (por causa da sintaxes) para o programa rodar:

-- Em vez do 1º For, usei o laço while
-- Troquei de get para fgets
-- Inclui também o getchar(); depois do scanf() para a nota de física. O getchar(); fará com que um '\n', correspondente ao ENTER que o usuário pressiona depois de digitar o número, não seja abandonado no buffer de entrada. E assim esperar pelos próximos dados do usuário.

Rodou uma beleza!

#include

int main(void) {

struct estudantes {
char nome[30];
float matematica, fisica, media;
};

struct estudantes alunos[5];

int count=0;

while (count < 5) {

fflush(stdin);
printf ("\n Nome do aluno %d: ", count+1);
fgets (alunos[count].nome,30, stdin);

printf("Nota de matematica: ");
scanf("%f", &alunos[count].matematica);

printf("Nota de fisica: ");
scanf("%f", &alunos[count].fisica);
getchar();
alunos[count].media = (alunos[count].matematica + alunos[count].fisica)/2;
count++;
}
printf(" Exibindo nomes e medias ");

for(count = 0 ; count < 5 ; count++)
{
printf("\nAluno %d\n", count+1);
printf("Nome: %s\n",alunos[count].nome);
printf("Media: %.2f\n", alunos[count].media);
}

return 0;
}

14 de agosto de 2015 às 12:55

Anônimo Anônimo disse...

#include
#include
#include
#include

/*Criando a struct */
struct aluno
{
char nome[50];
int matricula;
};

/*Criando a variável aluno que será do
tipo struct ficha_de_aluno */
aluno va[5];
int i;


int verficaraluno(int cont, int pmatricula){
int alunoexistente=0;
int i;

for(i=1;i<=cont-1;i++){
if (pmatricula==va[i].matricula){
alunoexistente=1;
break;
}
}
return alunoexistente;
}



void gravaraluno(){
int vmatricula;
char vnome[50];
/* gravando um vetor de fichaaluno */
i=1;
system("cls");
printf("\n---------- Cadastro de aluno -----------\n\n\n");

printf("Nome do %i aluno ......: ",i);
fflush(stdin);
fgets(va[i].nome,50,stdin);

printf("Matricula do %i aluno ......: ",i);
scanf("%i", &va[i].matricula);

i++;

while (i<=3){
system("cls");
printf("\n---------- Cadastro de aluno -----------\n\n\n");

printf("Nome do %i aluno ......: ",i);
fflush(stdin);
fgets(vnome,50,stdin);


printf("Matricula do %i aluno ......: ",i);
scanf("%i", &vmatricula);

if (verficaraluno(i,vmatricula)==1){
printf("Aluno existente!!!");
getch();
}
else{
strcpy(va[i].nome, vnome);
va[i].matricula=vmatricula;
i++;
}
}
}

void mostraraluno(){
system("cls");
for (i=1;i<=3;i++){
printf("\n\n --------- Lendo os dados da struct ---------\n\n");
printf("Nome ...........: %s \n", va[i].nome);
printf("Matricula .....: %i \n", va[i].matricula);
}

}



main(){
gravaraluno();
mostraraluno();
getch();
}

4 de novembro de 2015 às 10:49

Blogger Unknown disse...

Boa tarde!
Qual a necessidade de limpar o buffer dentro do laço FOR?
Li também que não é recomendado usar o fflush ou fpurge por motivos de portabilidade. Qual o melhor método para limpar o buffer?

Obrigada!

17 de dezembro de 2015 às 10:48

Anônimo Anônimo disse...

Gabriella, é só declarar um método ou funcão assim: while (getchar() != '\n');

18 de junho de 2016 às 08:49

Blogger Gabi Agostinho disse...

Como ficaria se eu fosse usar typedef struct?

26 de setembro de 2016 às 08:14

Blogger Nato disse...

o post é antigo mais torcendo para que alguem leia...
tem como fazer com que esta struct exiba todos dados em ordem crescente?

5 de outubro de 2016 às 10:52

Blogger Unknown disse...

Pessoal boa noite! Eu preciso fazer um programa em C++ usando funções, structs e apontadores, mas não estou conseguindo terminar. Alguém poderia me ajudar por gentileza?

#include

using namespace std;



struct contato {
string nome;
string telefone;
};

void menu(){
cout<<"----------Menu---------"<>agenda[tam].nome;
cout<< " Informe o número: "<>tam;

contato*agenda = new contato[tam];


int valor;

Do { menu();
cin>>valor;
switch (valor){
case 1: AdicionarContato();
break;
case 2: PesquisarContato();
break;
case 3: RemoverContato();
break;
case 4: ListarAgenda();
break;
case 0: cout<<" Saindo "<<endl;
default: cout<< " Opção inválida ";

}
}while(valor != 0);

}

19 de outubro de 2016 às 18:59

Blogger Unknown disse...

Você tem que usar o bubble short, eu tô no celular e é ruim de digitar, mas vc faz assim.

For(i=0;icont[j])
troca=i;
I=j
J=troca;
}}}

Depende do exemplo mas o grosso é isso, desculpa se ficou malfeito, pelo celular é muito ruim

9 de junho de 2017 às 23:03

É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.

- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção

- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia

- Se algo não ficar claro ou for confuso, nos avise

Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.
Você pode usar algumas tags HTML, como <b>, <i>, <a>

A moderação de comentários foi ativada. Todos os comentários devem ser aprovados pelo autor do blog.

Depois de enviar seu comentário, será necessário fazer login.
Prove que você não é um robô