Ir para conteúdo

POWERED BY:

Arquivado

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

Telmovsky

Problemas com chavetas

Recommended Posts

Será que alguem me pode corrigir este codigo fonte rapidinho? acho que tenho as chavetas mal postas, mas não tou a conseguir acertar com elas.... dáme um erro no primeiro scanf... queria fazer um programinha que pergunta-se 1º o curso depois a disciplina.. dps o nome do aluno e dps as notas, não sei se está mt bem... se tambem puderem dar uma olhadela a isso agradecia. obrigado.

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <math.h>


typedef struct aluno
{
char curso;
int nota;
char nome;
char disciplina;
int faltas;
}aluno;

int main (int args, char* arg[])
{
printf("\nDigite o nome do curso e pressione Enter\n");
for(int i=1;i<=1;i++) // Nome da disciplina
{ printf("curso <%d> ",i);
scanf("%s",&p[i].curso);
}
aluno p[10];// 10 alunos
printf("Digite o nome e pressione Enter\n");
for(int i=1;i<=10;i++) // Nome dos alunos
{
printf("Aluno <%d> ",i);
scanf("%s",&p[i].nome);
}
printf("\nDigite o nome de 1 disciplina e pressione Enter\n");
for(int i=1;i<=1;i++) // Nome da disciplina
{ printf("Disciplina <%d> ",i);
scanf("%s",&p[i].disciplina);
}
printf("\nDigite a nota e pressione Enter\n");
for(int i=1;i<=10;i++) // Notas dos alunos
{
printf("Nota do aluno <%d> ",i);
scanf("%d",&p[i].nota);
}
printf("\nDigite as faltas e pressione Enter\n");
for(int i=0;i<10;i++) // Falta dos alunos
{
printf("Total de faltas do aluno <%d> ",i);
scanf("%d",&p[i].faltas);
}

for(int i=0;i<10;i++)
{
if(p[i].nota < 10 && p[i].faltas >= 20)
{
printf("Aluno <%d> ",i);
printf("\nREPROVADO\n");
}
else
{
printf("Aluno <%d> ",i);
printf("\nAPROVADO\n");
}
} 



getche();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro scanf usa uma variavel chamada p, mas ela só é declarada após seu uso.

Quando o programa chega em scanf a variável p não existe.

 

for(int i=1;i<=1;i++) // Nome da disciplina
{ printf("curso <%d> ",i);
scanf("%s",&p[i].curso);
}
aluno p[10];// 10 alunos

 

Voce pode declarar p antes desse laço. Algo desse tipo:

 

aluno p[10];// 10 alunos

for(int i=1;i<=1;i++) // Nome da disciplina
{ printf("curso <%d> ",i);
scanf("%s",&p[i].curso);
}

As chaves servem para limitar blocos.

No caso acima tudo que estiver entre as chaves {} será executado segundo a instrução "for".

Nesse caso só será executada uma vez.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela sua ajuda, so tenho mais uma dúvida... preciso de apresentar no ecrã os alunos que estão aprovados e reprovados.. alguem sabe como fzer isso? ajudem-me a completar por favor..

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <math.h>


typedef struct aluno
{

char curso;
int nota;
char nome;
char disciplina;
int faltas;
}aluno;

int main (int args, char* arg[])
{
	aluno p[10];// 10 alunos
printf("\nDigite o nome do curso e pressione Enter\n");
for(int i=1;i<=1;i++) // Nome do curso
{ printf("curso <%d> ",i);
scanf("%s",&p[i].curso);
}

printf("Digite o nome de uma disciplina e precisse Enter\n");
for(int i=1;i<=1;i++) // Nome da disciplina
{
printf("Disciplina <%d> ",i);
scanf("%s",&p[i].disciplina);
}
printf("\nDigite o nome do aluno e pressione Enter\n");
for(int i=1;i<=10;i++) // Nome do aluno
{ printf("Aluno <%d> ",i);
scanf("%s",&p[i].nome);
}
{ /*Media_Geral*/
	float n1,n2,n3,n4,m;
	printf("Introduza a nota do primeiro teste");
	scanf("%f",&n1);
	printf("Introduza a nota do segundo teste");
	scanf("%f",&n2);
	printf("Introduza a nota do terceiro teste");
	scanf("%f",&n3);
	printf("Introduza a nota do quarto teste");
	scanf("%f",&n4);
	m = (n1+n2+n3+n4)/4;	
	printf("A Media e: %0.2f",m);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.