Ir ao conteúdo
  • Cadastre-se

C Relatorio de calculos da raiz quadrada


Ivander

Posts recomendados

#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
main()
{
struct raiz
{
float a, b, c, delta, x1, x2;
char mensagem;
};
struct raiz quad[5];
   	
float a, b, c, delta, x1, x2, i=0, cont=0;
char resp;

do 
{
	while(cont<=5)
	{
	
printf  ("\t\t\tCALCULO DE RAIZ PARA UMA EQ. DO SEGUNDO GRAU\n\n\n");

	printf  ("Insira o valor do coeficiente 'A':");
	scanf   ("%f", &a);
fflush(stdin);
	
		printf  ("Insira o valor do coeficiente 'B':");
		scanf   ("%f", &b);
fflush(stdin);

			printf  ("Insira o valor do coeficiente 'C':");
			scanf   ("%f", &c);			
fflush(stdin);

delta = pow(b,2)-4*a*c;
x1=((-b)+sqrt(delta))/(2*a);
x2=((-b)-sqrt(delta))/(2*a);
				


				if ( delta>0 && delta!=0)
				{
				mensagem[i]=AETDRR; //A equacao tem duas raizes reais
				quad[i].a=a;
				quad[i].b=b;
				quad[i].c=c;
				quad[i].delta=delta;
				quad[i].x1=x1;
				quad[i].x2=x2;
				}
						
				if ( delta<0 && delta!=0)
				{
				mensagem[i]=AENTRR; //A equacao nao tem raizes reais
				quad[i].a=a;
				quad[i].b=b;
				quad[i].c=c;
				quad[i].delta=delta;
				quad[i].x1=x1;
				quad[i].x2=x2;
				}
				
				if ( delta==0)
				{
				mensagem[i]=AETDRI; // A equacao tem duas raizes reais iguais
				quad[i].a=a;
				quad[i].b=b;
				quad[i].c=c;
				quad[i].delta=delta;
				quad[i].x1=x1;
				quad[i].x2=x2;
				}
				
printf("Deseja realizar mais um calculo de raiz quadrada? S/ N/ : ");
scanf ("%c", &resp);
printf("\n\n");
system("cls");
cont++;
i++;
}
goto mid;
}
while( resp=='s' || resp=='S');	

mid:
resp=0;
printf ("\nDeseja imprimir os calculos realizados? S/ N/");
scanf	("%c",&resp);
if(resp=='s' || resp=='S')
{
printf(" LEGENDA: \n AETDRR = A equacao tem duas raizes reais\n AENTRR = A equacao nao tem raizes reais\n AETDRI = A equacao tem duas raizes reais iguais\n\n ");	
	for (i=0;i<5;i++)
	{
	printf("%s", quad[i].mensagem);
	printf("%.0f", quad[i].a);
	printf("%.0f",quad[i].b);
	printf("%.0f",quad[i].c);
	printf("%.0f",quad[i].delta);
	printf("%.0f",quad[i].x1);
	printf("%.0f",quad[i].x2);
	}
}else{ goto fim;
}
fim:
system("PAUSE");									
return 0;

}

Boa noite, 

tenho uma dúvida, ao compilar este código esta dando erro referente a declaração de escopo. 
Alguém pode me ajudar ?

A ideia é realizar até 5 calculos de raiz quadrada, após isso o programa irá perguntar se desejo imprimir a matriz (relatório) referente a todos os calculos realizados.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Ivander     seu código está bom ,  a atribuição de dados a uma string desse jeito só funciona no c++ , e aqui tudo está na linguagem c , então use o comando strcpy ,  e esse goto é interessante , eu usava ele no tk 85 , mas ultimamente não tenho visto em lugar algum ,  então seu código poderia ser assim  :

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
struct raiz{/* geralmente as struct ficam antes da main */
    float a,b,c,delta,x1,x2;
    char mensagem[10];
};
struct raiz quad[5];/* servindo como variável global , acessada em qualquer parte do programa */
int main(){
    system("color ec");
    float a,b,c,delta,x1,x2,cont=0;
    int  i=0;
    char resp='N';
    do{
        printf("\t\t\tCALCULO DE RAIZ PARA UMA EQ. DO SEGUNDO GRAU\n\n\n");
        printf("Insira o valor do coeficiente 'A':");
        fflush(stdin);
        scanf ("%f",&a);
        printf("Insira o valor do coeficiente 'B':");
        scanf ("%f",&b);
        fflush(stdin);
        printf("Insira o valor do coeficiente 'C':");
        fflush(stdin);
        scanf ("%f",&c);
        delta = pow(b,2)-4*a*c;
        x1=((-b)+sqrt(delta))/(2*a);
        x2=((-b)-sqrt(delta))/(2*a);
        if ( delta>0 && delta!=0){
            strcpy(quad[i].mensagem,"AETDRR"); //A equacao tem duas raizes reais
            quad[i].a=a;
            quad[i].b=b;
            quad[i].c=c;
            quad[i].delta=delta;
            quad[i].x1=x1;
            quad[i].x2=x2;
        }
        if( delta<0 && delta!=0){
            strcpy(quad[i].mensagem,"AENTRR"); //A equacao nao tem raizes reais
            quad[i].a=a;
            quad[i].b=b;
            quad[i].c=c;
            quad[i].delta=delta;
            quad[i].x1=x1;
            quad[i].x2=x2;
        }
        if( delta==0){
            strcpy(quad[i].mensagem,"AETDRI"); // A equacao tem duas raizes reais iguais
            quad[i].a=a;
            quad[i].b=b;
            quad[i].c=c;
            quad[i].delta=delta;
            quad[i].x1=x1;
            quad[i].x2=x2;
        }
        printf("Deseja realizar mais um calculo de raiz quadrada ?    S / N : ");
        fflush(stdin);/* mudou de tipo use o fflush antes do scanf*/
        scanf ("%c",&resp);
        printf("\n\n");
        system("cls");
        cont++;
        i++;
    }while( toupper(resp) == 'S' && cont < 5 );
    mid:
        resp=0;
        printf("\nDeseja imprimir os calculos realizados ?    S / N\r");
        resp=(char)getch();/* sem pressionar enter */
        if(toupper(resp)=='S'){
            printf(" LEGENDA:                                              \n");
            printf(" AETDRR = A equacao tem duas raizes reais");
            printf("\n AENTRR = A equacao nao tem raizes reais");
            printf("\n AETDRI = A equacao tem duas raizes reais iguais\n\n ");
            for(i=0;i<cont;i++){
                printf("%s\n"              ,quad[i].mensagem);
                printf("a -----: %6.0f\n"  ,quad[i].a       );
                printf("b -----: %6.0f\n"  ,quad[i].b       );
                printf("c -----: %6.0f\n"  ,quad[i].c       );
                printf("delta -: %6.0f\n"  ,quad[i].delta   );
                printf("x1 ----: %6.0f\n"  ,quad[i].x1      );
                printf("x2 ----: %6.0f\n\n",quad[i].x2      );
            }
        }
        else{
            goto fim;
        }
    fim:
        printf("\n");
        system("PAUSE");
        printf("\n\n\n");
    return 0;
}

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@devair1010  Muito obrigado pela ajuda, quando estou programando acontece realmente no automático algumas atribuições em c++ ou c# e nem noto a diferença porque não tenho experiência em c. 

agradeço a ajuda e disposição, me ajudou muito . 
Resolveu o problema.

adicionado 3 minutos depois

resolvido

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!