Gente, me tira uma dúvida, fiz uma struct aqui no meu prog, sendo que quando estou dando os valores as variáveis dessa struct, eu nem termino a função que dei ao while e o prog "para de funcionar"
PS: struct montada a partir da linha 14 e ela está sendo usada na case 1.
/* Programa
Programa: Informações do aluno
Autor: Renan Thiago de A. Narciso
Data:13/05/2015
Descrição:-------
*/
#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <stdlib.h>
struct dados{
char materia[30];
float nota1;
float nota2;
float nota3;
};
struct dados aluno;
int main(void){
setlocale(LC_ALL,"Portuguese"); //Selecionando a linguagem do programa para pt-BR
/* Aqui vao as declaracoes das variaveis */
int a = 0; //Declarando variável para controle de menu.
int na=0, no; //Variáveis da case 1.
char mat;
int pe, pa, per; //Variáveis da case 2.
int m=0, n; //Varíaveis da case 3.
/* Aqui vao os comandos do programa */
do{
printf("\t\t\t********************************\n\n");
printf("\t\t\t* MENU PRINCIPAL DO PROGRAMA *\n\n");
printf("\t\t\t********************************\n\n");
printf("1 - Registrador de notas.\n");
printf("2 - Quantos periodos faltam para conclusão do seu curso.\n");
printf("3 - Identificador de números pares e ímpares.\n\n");
printf("4 - Sair.\n\n");
printf("Informe a opção desejada: ");
scanf("%d", &a); // Armazena o número digitado.
system("cls"); // Limpa a tela.
switch(a){
case 1: //Opção 1//
printf("Você entrou na opção Registrador de notas.\n");
printf("\nDigite a quantidade de matérias: ");
scanf("%d", &no);
while(na<no){na++;
printf("Nome da matéria: ");
fflush(stdin);
fgets(aluno.materia, 30, stdin);
printf("Informe a 1º nota: ");
scanf("%.2f", &aluno.nota1);
fflush (stdin);
printf("Informe a 2º nota: ");
scanf("%.2f", &aluno.nota2);
fflush (stdin);
printf("Informe a 3º nota: ");
scanf("%.2f", &aluno.nota3);
fflush (stdin);
}
break;
case 2: //Opção 2//
printf("Você entrou na opção de períodos do curso.\n\n");
while(1==1){
printf("Digite a quantidade de períodos do seu curso: ");
scanf("%d", &pe);
printf("Em qual período você está: ");
scanf("%d", &pa);
if(pa>0){
per=pe - pa;
printf("\nFaltam %d perídos para concluir seu curso!", per);
break;
}
else
printf("Número inválido!\n");
}
printf("\n\n\nPressione uma tecla para voltar ao menu principal.");
getch();
system("cls");
break;
case 3: //Opção 3//
printf("Você entrou na opção de dentificador de números pares e ímpares.\n");
printf("\nDigite a quantidade de números: ");
scanf("%d", &n);
printf("\n");
while(m<n){m++;
if(m%2==0){
printf("Números pares: %2.0d\n", m);
}
else{
printf("Números Ímpares: %2.0d | ", m);
}
}
printf("\n\n\nPressione uma tecla para voltar ao menu principal.");
getch();
system("cls");
break;
default:
a = 4;
printf("\t\t\t\n\n\nSaindo do programa...\n\n\n");
}
} while(a != 4); // Enquanto a letra 'a' for diferente de 4, sai do programa.
system("pause");
return 0;
}
Pergunta
Renanzinth
Gente, me tira uma dúvida, fiz uma struct aqui no meu prog, sendo que quando estou dando os valores as variáveis dessa struct, eu nem termino a função que dei ao while e o prog "para de funcionar"
PS: struct montada a partir da linha 14 e ela está sendo usada na case 1.
/* Programa Programa: Informações do aluno Autor: Renan Thiago de A. Narciso Data:13/05/2015 Descrição:------- */ #include <stdio.h> #include <locale.h> #include <conio.h> #include <stdlib.h> struct dados{ char materia[30]; float nota1; float nota2; float nota3; }; struct dados aluno; int main(void){ setlocale(LC_ALL,"Portuguese"); //Selecionando a linguagem do programa para pt-BR /* Aqui vao as declaracoes das variaveis */ int a = 0; //Declarando variável para controle de menu. int na=0, no; //Variáveis da case 1. char mat; int pe, pa, per; //Variáveis da case 2. int m=0, n; //Varíaveis da case 3. /* Aqui vao os comandos do programa */ do{ printf("\t\t\t********************************\n\n"); printf("\t\t\t* MENU PRINCIPAL DO PROGRAMA *\n\n"); printf("\t\t\t********************************\n\n"); printf("1 - Registrador de notas.\n"); printf("2 - Quantos periodos faltam para conclusão do seu curso.\n"); printf("3 - Identificador de números pares e ímpares.\n\n"); printf("4 - Sair.\n\n"); printf("Informe a opção desejada: "); scanf("%d", &a); // Armazena o número digitado. system("cls"); // Limpa a tela. switch(a){ case 1: //Opção 1// printf("Você entrou na opção Registrador de notas.\n"); printf("\nDigite a quantidade de matérias: "); scanf("%d", &no); while(na<no){na++; printf("Nome da matéria: "); fflush(stdin); fgets(aluno.materia, 30, stdin); printf("Informe a 1º nota: "); scanf("%.2f", &aluno.nota1); fflush (stdin); printf("Informe a 2º nota: "); scanf("%.2f", &aluno.nota2); fflush (stdin); printf("Informe a 3º nota: "); scanf("%.2f", &aluno.nota3); fflush (stdin); } break; case 2: //Opção 2// printf("Você entrou na opção de períodos do curso.\n\n"); while(1==1){ printf("Digite a quantidade de períodos do seu curso: "); scanf("%d", &pe); printf("Em qual período você está: "); scanf("%d", &pa); if(pa>0){ per=pe - pa; printf("\nFaltam %d perídos para concluir seu curso!", per); break; } else printf("Número inválido!\n"); } printf("\n\n\nPressione uma tecla para voltar ao menu principal."); getch(); system("cls"); break; case 3: //Opção 3// printf("Você entrou na opção de dentificador de números pares e ímpares.\n"); printf("\nDigite a quantidade de números: "); scanf("%d", &n); printf("\n"); while(m<n){m++; if(m%2==0){ printf("Números pares: %2.0d\n", m); } else{ printf("Números Ímpares: %2.0d | ", m); } } printf("\n\n\nPressione uma tecla para voltar ao menu principal."); getch(); system("cls"); break; default: a = 4; printf("\t\t\t\n\n\nSaindo do programa...\n\n\n"); } } while(a != 4); // Enquanto a letra 'a' for diferente de 4, sai do programa. system("pause"); return 0; }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.