Ir ao conteúdo
  • Cadastre-se

C preciso de uma dica de como concerta o erro no codigo


Brendon Nogueira

Posts recomendados

olá, meu professor pediu esse exercício, e eu fiz o código,  logo a baixo  Faça um programa C totalmente modularizado que leia os limites de um intervalo de números inteiros, identifique, conte e imprima a quantidade de números pares e ímpares deste intervalo. Construir uma função para identificar, contar a quantidade de números pares e ímpares.

 

 

 

 

#include <code>

 

//entrada de dados

void entrada( int *li, int *ls );// ponteiro para os limites

 

//processamento de dados

void par_impar( int limif, int limsu, int *cp , int *ci ); // ponteiros para os contadores

 

//saida de dados

void dados(int ni, int np);//quantidade de pares e impares


 

int main(void) {

 

int limite_in,limite_su, total_pares, total_impares;

 

//entrada de dados

entrada(&limite_in,&limite_su );

 

//leitura de dados

par_impar (limite_in, limite_su,&total_pares, &total_impares);

 

//saida de dados

dados( total_pares,total_impares);


 

return 0;

}

void entrada( int *li, int *ls ){

printf("\n\n\tDigite o limite superio e inferior do intervalo( inferior<=superior)");

scanf("%i%i", li,ls);

}

void par_impar( int limif, int limsu, int *cp , int *ci )

{

for( int i = limif; i <= limsu; i++);

if( i % 2 == 0)

(*cp)++;

else

(*ci)++;

 

}

void dados(int ni, int np)

{

printf("\n\n\tquantidades de números pares = %i e impares = %i dentro do intervalor \n ", ni,np);

 

}

 

entretanto  o i dentro do if ( i % 2 == 0) 

está falando que não foi declarada, porém eu seguir os passo a passo que o professor tinha passado e está tudo igual, o dele funcionou, e o meu da erro nisso que falei, alguém poderia me ajuda ?? 

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

@Brendon Nogueira    você não disse que erros acontece no seu código , mas me parece que ele não mostrando o resultado esperado , e  creio que isso seja por que você não inicializou as variáveis antes de enviar seus endereços para a função ,  e ainda na função par_impar , você colocou um ponto e vírgula no loop for , finalizando ele sem que fizesse alguma coisa , e assim não faz a contagem ,  e seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <windows.h>
#include <iomanip>
int GetColor();
int getForground();
int getBackground();
void textcolor(int,int);

//entrada de dados
void entrada( int *li, int *ls );// ponteiro para os limites
//processamento de dados
void par_impar( int limif, int limsu, int *cp , int *ci ); // ponteiros para os contadores
//saida de dados
void dados(int ni, int np);//quantidade de pares e impares
int main()
{
    int c_letra_ants, c_fundo_ants;
    WORD cor;
    c_letra_ants = getForground();
    c_fundo_ants = getBackground();
    int limite_in,limite_su, total_pares=0, total_impares=0;// inicializar as variáveis
    //entrada de dados
    entrada(&limite_in,&limite_su );
    printf("li ls = %d %d\n",limite_in,limite_su);
    //leitura de dados
    par_impar (limite_in, limite_su,&total_pares, &total_impares);
    printf("totpar totimp = %d %d\n",total_pares, total_impares);
    //saida de dados
    dados( total_pares,total_impares);
    textcolor(c_letra_ants,c_fundo_ants);
    return 128;
}
void entrada( int *li, int *ls )
{
    printf("\n\n\tDigite o limite superio e inferior do intervalo( inferior<=superior)");
    scanf("%i%i", li,ls);
}
void par_impar( int limif, int limsu, int *cp , int *ci )
{
    int i;
    printf("li ls = %d %d\n",limif,limsu);
    for( i=limif; i <= limsu; i++)// ;  esse ponto e vírgula finaliza o Loop for aqui mesmo
        if( i % 2 == 0)
            (*cp)++;
        else
            (*ci)++;
}
void dados(int ni, int np)
{
    textcolor(12,10);
    printf("\n\n\tquantidades de números pares = %i e impares = %i dentro do intervalor\t\n", ni,np);
}
int GetColor()
{
    WORD wColor = 0;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if(GetConsoleScreenBufferInfo(hStdOut, &csbi)){
        wColor = (csbi.wAttributes & 0xFF);
    }
    return wColor;
}
int getForground(){
    return GetColor() & 0x0F;
}
int getBackground(){
    return (GetColor() >> 4) & 0x0F;
}
void textcolor(int letra,int fundo)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),letra+(fundo<<4));
}

 

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!