Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <conio.h>
#include <math.h>



int divisivel3 ( int matriz[5][5] );
int main(int argc, char const *argv[])
{
  int j , i;
  //Matriz com valores fixo para não fazer a leitura
  int matriz[5][5] = {{15,9,23,43,49},
                      {3,36,55,53,18},
                      {12,42,51,57,34},
                      {6,32,28,25,62},
                      {72,91,81,16,41}
                     };
  for(i=0; i<5; i++)for(j=0; j<5; j++)
    if( divisivel ( i , j , matriz ) == 1 )
      printf("O Numero %3d e divisivel por 3\n",matriz [i][j]);
  return 0;
}
int divisivel ( int i, int j , int matriz[5][5] )
{
  if( matriz[i][j] % 3 == 0 )   
  {
    return 1;  /// marca como divisivel
  }
  else
  {
    return 0; /// marca como não divisIveL
  }
}

por exemplo: Número divisível por 3 encontrado na linha 1, coluna 1, numero 15

a coluna e a linha devem ser iniciadas do valor 1, diferente do vetor da linguagem C

 

estou com dúvida nisso, preciso de ajuda!

  • Obrigado 1
Postado

@FLASHLEGENDS     você pode mostrar o valor real da linha e coluna , que começam em zero , ou se Quiser mostrar os valores começando em 1 coloque i+1 j+1 , no momento de escrever na tela , ou também pode começar o vetor da posição 1 , mas perderá uma posição , a zero ,

 

printf("numero divisiveL por 3 encontrado na linha %3d , coluna %3d , numero %3d\n" , i + 1 , j + 1 , matriz[i][j] );

Postado
Em 10/06/2022 às 21:06, FLASHLEGENDS disse:
int divisivel ( int i, int j , int matriz[5][5] )
{
  if( matriz[i][j] % 3 == 0 )   
  {
    return 1;  /// marca como divisivel
  }
  else
  {
    return 0; /// marca como não divisIveL
  }
}

 

Considere o simples:

 

int divisivel(int i, int j, int matriz[5][5])
{
    return matriz[i][j] % 3 == 0;
}

 

Zero é falso em C. Toda expressão avalia para 0 ou 1.

  • Curtir 1
  • Haha 1
  • 1 ano depois...
Postado

@FLASHLEGENDS

Boa Dia!

 

Disso

Em 10/06/2022 às 21:06, FLASHLEGENDS disse:
int divisivel ( int i, int j , int matriz[5][5] )
{
  if( matriz[i][j] % 3 == 0 )   
  {
    return 1;  /// marca como divisivel
  }
  else
  {
    return 0; /// marca como não divisIveL
  }

 

Tem-se, simplesmente isso:

int divisivel3 (int i,int j,int matriz[5][5])
{
    return  matriz[i][j] % 3;
}

Ou ainda...

inline int divisivel3 (int i,int j,int matriz[5][5])
{
    return  matriz[i][j] % 3;
}

... Ao avaliar a pergunta da função, ela é bem sucedida com retorno de valor 0, sendo, a propósito, apenas por curiosidade o valor na constante EXIT_SUCCESS.

 

Por último, não notou que há uma na declaração e outra na definição

a.c: Na função main’:
 a.c:18:9: erro: declaração implícita da função divisivel’;  você quis dizer divisivel3’?  [-Wimplicit-function-declaration]
    18 |  if( divisivel ( i , j , matriz ) == 1 )
       |      ^~~~~~~~~
       |  divisivel3
 ac:7:14: aviso: parâmetro não utilizado argc [-Wunused-parameter]
     7 |  int main(int argc, char const *argv[])
       |           ~~~~^~~~
 ac:7:32: aviso: parâmetro não utilizado argv [-Wunused-parameter]
     7 |  int main(int argc, char const *argv[])
       |                     ~~~~~~~~~~~~^~~~~~

c'11 - gcc'11.4

 

Compilável

#include <stdio.h>

int divisivel3 ( int i, int j , int matriz[5][5] );

int main ()
{
  int j , i;
  //Matriz com valores fixo para não fazer a leitura
  int matriz[5][5] = {{15,9,23,43,49},
                      {3,36,55,53,18},
                      {12,42,51,57,34},
                      {6,32,28,25,62},
                      {72,91,81,16,41}
                     };
  for(i=0; i<5; i++)
  for(j=0; j<5; j++)
    if( divisivel3 (i, j, matriz) ) // Atenção: re avaliar a pergunta
      printf("O Numero %3d e divisivel por 3\n",matriz [i][j]);
  return 0;
}
inline int divisivel3 ( int i, int j , int matriz[5][5] )
{
  return matriz[i][j] % 3;
}

 

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