Ir ao conteúdo
  • Cadastre-se
tiscomen

Contar variavel utilizando uma struct

Recommended Posts

Ola pessoal, Sou novato aqui no forum, gostaria de pedir ajuda num programa que estou desenvolvendo para um trabalho academico, portanto o contador da variavel "s" não está funcionando, segue o enunciado do exercicio: 

Crie um programa que contenha uma struct doceira que contém os seguintes atributos:

tipo de doce

preço

marca

dietético (aceita os valores: sim ou não)

 

"O programa deverá ler 5 doceiras e contar quantos são dietéticos."

 

Codigo C++

 

#include <stdio.h>
#include <string.h>
struct doceira
{
char tipo[20], marca[20], dietetico[5];
float preco, soma;
};
int main ()
{
doceira doc[5];
int i;
int soma=0;
for (i = 0; i < 5; i++)
{
printf("\nInforme o tipo de doce: ");
fflush(stdin);
fgets(doc.tipo,20,stdin);
printf("Informe seu preco: ");
scanf("%f",&doc.preco);
printf("Informe sua marca: ");
fflush(stdin);
fgets(doc.marca,20,stdin);
printf("Informe se é dietetico: ");
fflush(stdin);
scanf(doc.dietetico,5,stdin);
if (doce.dietetico == 's')
{
soma=soma+1;

}
}
printf ("%d, Quantidade dieteticos: ",soma);
return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já vi uma postagem parecido aqui mesmo :huh:

No código estas a usar scanf de maneira errada.

 

 

Referência para estudo da função scanf

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora funcionou, So não estou conseguindo fazer contar os dieteticos "s", ele conta todos os valores informados. 

 

#include <stdio.h>
#include <string.h>
struct doceira
{
char tipo[20], marca[20], dietetico[5];
float preco, soma;
};
int main ()
{
doceira doc[2];
int i;
int soma=0;
for (i = 0; i < 2; i++)
{
printf("\nInforme o tipo de doce: ");
fflush(stdin);
fgets(doc.tipo,20,stdin);
printf("Informe seu preco: ");
scanf("%f",&doc.preco);
printf("Informe sua marca: ");
fflush(stdin);
fgets(doc.marca,20,stdin);
printf("Informe se é dietetico: ");
fflush(stdin);
scanf("%c", &doc.dietetico,5,stdin);
if (doc.dietetico == "%d",'s')
{
soma=soma+1;
}
}
printf ("Quantidade dieteticos: %d",soma);
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste e compra com o código abaixo:

#include <stdio.h>
#include <string.h>
struct doceira
{
    char tipo[ 20 ], marca[ 20 ], dietetico;
    float preco, soma;
};
int main ( void )
{
    struct doceira doc[ 2 ];
    int i;
    int soma = 0;
    for ( i = 0; i < 2; i++ )
        {
            printf( "\nInforme o tipo de doce: " );
            fgets( doc[ i ].tipo,20,stdin );
            
            printf( "Informe seu preco: " );
            scanf( "%f",&doc[ i ].preco );
            
            fflush( stdin );
            
            printf( "Informe sua marca: " );
            fgets( doc[ i ].marca,20,stdin );
            
            fflush( stdin );
            
            printf( "Informe se é dietetico: " );
            char chChoose = '\0';
            while( (chChoose = getchar()) != 's' && chChoose != 'n' )
            	printf( "\rEntre s- Sim, n- Nao: " );
          	while( '\n' != getchar() )continue;
            doc[ i ].dietetico = chChoose;

            if ( doc[ i ].dietetico == 's' )
                {
                    soma = soma + 1;
                }
        }
    printf ( "Quantidade dieteticos: %d",soma );
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×