• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

de novo:(

6 mensagens neste tópico

//Desenvolva uma função que receba um tabela de inteiros positivos e o seu tamanho e
//verifique quantos dos elementos do tabela são pares e quantos são impares.

#include<stdio.h>
# define TAM 5

void funcao(int tam, int *p, int *imp)
    {
    int i;
    for(i=0;i<tam;i++) //vai percorrer o meu vector
       {
       if(*p[i]/2==0)
          
           *p=*p+1;
          
       else
           *q=*q+1;
       }
main()
{
int a[TAM],i,*p,*q,al=1;
   
     for(i=0;i<TAM;i++);
       {
       printf(" introduza o valor %d ",al);
       scanf("%d",&a[i]);
       al++;
       }

printf(" %d %d\n",*p,*q);
fflush(stdin);
getchar();
}

sei que tou a fazer mtos erros,mas nao sei aonde  :) :) :cheesygrin: :cheesygrin: :cheesygrin: :cheesygrin: :cheesygrin: :cheesygrin: :thumbsup: :thumbsup:

tenho dificuldade em enteder em colocar aqui ->funcao(TAM,a,&imp);para comunicar com a função ajuda, please  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui

    for(i=0;i<TAM;i++) //vai percorrer o meu vector 
{
if(*p[i]/2==0) // devia de ser if(*p[i]%2==0)  -- modulo % em vez de divisão /
     *p=*p+1;
else
      *q=*q+1;
}

Aqui

void funcao(int tam, int *p, int *imp)

em vez de imp deve ser q

antes do ultimo printf inicializas os ponteiros e chamas a função


*p=0;
*q=0;

funcao(TAM,&p,&q);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include<stdio.h>
# define TAM 5

void funcao(int tam, int *p, int *q)
    {
    int i;
    for(i=0;i<tam;i++) //vai percorrer o meu vector
       {
       if(*(p[i]%2))==0)
          {
           *p=*p+1;
          }
       else
           *q=*q+1;
       }
main()
{
int p[TAM],i,*p,*q;;

     for(i=0;i<TAM;i++);
       {
       printf(" introduza o valor %d ");
       scanf("%d",&p[i]);
     
      }
*p=0;
*q=0;
funcao(TAM,&p,&q);
printf(" %d %d\n",*p,*q);
fflush(stdin);
getchar();
}

mesmo assim nao corre :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não seria mais simples:

int pares(int* vect,int tam)
{
  int i,count=0;
  
  for(i=0;i<tam;i++)
if(vect[i]%2 == 0) count++;
  
  return count;
}

Os impares=total-pares

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

suzy independentemente de seguires ou não a sugestão do shumy, continua a faltar-te uma } a fechar a função "funcao". Seria assim:

void funcao(int tam, int *p, int *q)
    {
    int i;
    for(i=0;i<tam;i++) //vai percorrer o meu vector
       {
       if(*(p[i]%2))==0)
          {
           *p=*p+1;
          }
       else
           *q=*q+1;
       }
    }

Não verifiquei o resto do código. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
:) existe soluçoes mais simples, mas tenho de fazer com ponteiros :cheesygrin: :wallbash:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora