Ir ao conteúdo
  • Cadastre-se

Problema com Struct, do-while.


Posts recomendados

Pessoal estou com um problema em um programa que lê o nome da pessoa, duas notas delas, a sua idade e se ela tem alguma deficiência. Meus problemas são: não estou conseguindo parar o programa com o while e não estou conseguindo ler se a pessoa tem ou não algum tipo de deficiência.

 

#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

using namespace std;
typedef char string [50];

struct Ficha {
	
	string nome;
	float n1,n2;
	int idade, S, N;
	
	
} Aluno[10];

int main() {
	string nome1;
	float nota1,nota2;
	int idade1,i,a;
	char S1,N1;
	i=0;
		

	do {
			printf ("\n\n Digite o nome do aluno:  ");
			scanf ("%s", &Aluno[i].nome);
			
			printf ("\n\n Digite a nota 1  do aluno ");
			scanf ("%f", &Aluno[i].n1);
			printf ("\n\n Digite a nota 2 do aluno ");
			scanf ("%f", &Aluno[i].n2);
			
			printf ("\n\n Digite a idade do aluno: ");
			scanf ("%d", &Aluno[i].idade);
			
			printf("Aluno possui alguma deficiencia? 1 para sim, 0 para Naho ");
			scanf ("%d", &a );
				if (a == 1) {
					Aluno[i].S=a;
					Aluno[i].N=0;
				}
				else {Aluno[i].N=a;
						Aluno[i].S=0;
				}
	i++;		
	}
	
	while (Aluno[i-1].nome!="fim");
	
	for (i=0; i<5;i++) {
		printf ("Nome: %s\n", Aluno[i].nome);
		printf ("Nota 1: %f\n", Aluno[i].n1);
		printf ("Nota 2: %f\n", Aluno[i].n2);
		printf ("Idade: %d\n", Aluno[i].idade);
		if (Aluno[i].S=0) { 
		printf ("Possui necessidade especial \n");	
		}
		else {
			printf ("Não possui necessiade Especial \n");
		}
		
		
	}
	system ("PAUSE");
	 
	
	
	return (0);
}

 

Link para o comentário
Compartilhar em outros sites

Segue o código corrigido:

#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <string.h>

typedef char string [50];

struct Ficha {
	string nome;
	float n1,n2;
	int idade;
	bool deficiente;//True(1) Sim, False(0) Nao
} Aluno[10];

int main() {
	string nome1;
	float nota1,nota2;
	int idade1,i,a;
	char S1,N1;
	i=0;


	do {
			printf ("\n\nDigite o nome do aluno:  ");
			scanf ("%s", Aluno[i].nome);

			//Condição de finalizar loop
			if(strcmp(Aluno[i].nome,"fim")==0){
				Aluno[i].nome[0] = '\0';
				break;
			}

			printf ("\n\nDigite a nota 1  do aluno ");
			scanf ("%f", &Aluno[i].n1);
			printf ("\nDigite a nota 2 do aluno ");
			scanf ("%f", &Aluno[i].n2);

			printf ("\n\nDigite a idade do aluno: ");
			scanf ("%d", &Aluno[i].idade);

			printf("\n\nAluno possui alguma deficiencia? (1 ou 0): ");
			scanf ("%d", &Aluno[i].deficiente);
			i++;
	}while (1);

	//alterei aqui - a e i
	for (a=0; a<i;a++) {
		printf ("Nome: %s\n", Aluno[a].nome);
		printf ("Nota 1: %f\n", Aluno[a].n1);
		printf ("Nota 2: %f\n", Aluno[a].n2);
		printf ("Idade: %d\n", Aluno[a].idade);
		printf("%s necessidade especial\n\n", (Aluno[a].deficiente ? "Possui":"Nao possui") );
	}
	system ("PAUSE");
	return (0);
}

 

  • Curtir 1
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!