Ir ao conteúdo
  • Cadastre-se

C dificuldade em completar exercício em C


Posts recomendados

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);
}

 

Link para o comentário
Compartilhar em outros sites

@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));
}

 

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