Ir ao conteúdo

Posts recomendados

Postado

Leia um cadastro com 10 automóveis que contenha:

modelo,
ano,
nome do dono,
potência e 
IPVA (se está pago ou não).

Por fim, gere um relatório informando quantos automóveis tem motores com potência superior a 100cv.

Meu contador (cont) está contando todos os veículos, como posso fazer para arrumar?

#include<stdio.h>

struct automovel{
	char modelo [50];
	char ano [5];
	char proprietario [50];
	int potencia [6];
	char IPVA [12];
}

 main(){
 	struct automovel cadastro;
 	
	int i, cont=0;
	
	for(i=0; i<10; i++){
		printf("Digite o modelo do carro: \n");
		scanf("%s",cadastro.modelo);
		printf("Digite o ano do carro: \n");
		scanf("%s",cadastro.ano);
		printf("Digite o nome do dono do carro: \n");
		scanf("%s",cadastro.proprietario);
		printf("Digite a potencia do carro (em cv): \n");
		scanf("%d",cadastro.potencia);
		printf("O IPVA  do carro esta pago? \n");
		scanf("%s",cadastro.IPVA);
	
		if(cadastro.potencia>100){
			cont++;
		}
	}

	printf("A quantidade de automoveis que tem motores com potencia superior a 100cv eh de:%d",cont);
}

 

Postado

@Helio Junnior Sartor Dalmolin   seu código está funcionando :

#include <stdio.h>
#include <windows.h>
struct automovel
{
	char modelo [50];
	char ano [5];
	char proprietario [50];
	int potencia;
	char IPVA [12];
};
void textcolor(int,int);
int main()
{
    int c_letra_ant, c_fundo_ant;
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO c;
    GetConsoleScreenBufferInfo(h, &c);
    c_letra_ant = c.wAttributes & 0x0F;
    c_fundo_ant = c.wAttributes >> 4 & 0x0F;
    struct automovel cadastro;
    int i, cont=0;
    char ch;
    for(i=0; i<1; i++)
    {
        textcolor(14,0);
        printf("Digite o modelo do carro -----------: ");
        textcolor(11,0);
        scanf("%s",cadastro.modelo);
        while(ch = fgetc(stdin) != '\n');  // limppar o buffer do teclado
        textcolor(14,0);
        printf("Digite o ano do carro --------------: ");
        textcolor(11,0);
        scanf("%s",cadastro.ano);
        while(ch = fgetc(stdin) != '\n');  // limppar o buffer do teclado
        textcolor(14,0);
        printf("Digite o nome do dono do carro -----: ");
        textcolor(11,0);
        scanf("%s",cadastro.proprietario);
        while(ch = fgetc(stdin) != '\n');  // limppar o buffer do teclado
        textcolor(14,0);
        printf("Digite a potencia do carro (em cv) -: ");
        textcolor(11,0);
        scanf("%d",&cadastro.potencia);
        while(ch = fgetc(stdin) != '\n');  // limppar o buffer do teclado
        textcolor(14,0);
        printf("O IPVA  do carro esta pago ? -------: ");
        textcolor(11,0);
        scanf("%s",cadastro.IPVA);
        while(ch = fgetc(stdin) != '\n');  // limppar o buffer do teclado
        if(cadastro.potencia > 100)
        {
            cont++;
        }
    }
    printf("\n\n");
    textcolor(15,0);
    printf("A quantidade de automoveis que tem motores\n\n");
    textcolor(10,12);
    printf(" com potencia superior a 100cv eh de : ");
    textcolor(15,9);
    printf("  %d  \n\n\n",cont);
    textcolor(c_letra_ant, c_fundo_ant);
    return 0;
}
void textcolor(int letra,int fundo)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            letra +(fundo << 4));
}

 

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