Ir ao conteúdo

Ninjas da T.I Preciso de ajuda em C


Jeferson Santana

Posts recomendados

Postado

Programa em C que carregue uma matriz de 10x10,capaz de armazenar 100 numeros inteiros com valores aleatorios,variando entre 0 e 50 .Apos e programa deve receber por meio do teclado um valor inteiro,tambem entre 0 e 50,que deve ser passado junto com a referida matriz de inteiro como parametros para uma função.A função deve retornar o numero de vezes que o valor digitado aparece no vetor e abaixo o vetor.

observações:

utilize x=rand()%50; para gerar numeros inteiros de 0 a 50

 

Bem ja fiz só que no final não estou conseguindo mostrar o numero de vezes da repetição.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int main () {
   int m[N][N], i, j,num,rep;
   srand(time(NULL));
   for (i=0; i<N; i++)
      for (j=0; j<N; j++)
         m[j] = rand() % 50;
   printf("Digite um numero de 0 a 50: ");
   scanf("%d",&num);
   printf("Matriz gerada:\n");
   
for (i=0; i<N; i++) {
      for (j=0; j<N; j++)
         printf("\t%d", m[j]);
      printf("\n");
   }
  
   
  printf("o numero %d se repete %d vezes",num,rep);
   
   
   return 0;
 
Postado

Você deve criar uma função com uma variável auxiliar para contar o número de ocorrencias

int conta_num(int matriz[][10], int num){    int aux;...
Aí é só comparar num com os valores da matriz e incrementar aux...

if(matriz[i][j] == num) aux++;
Postado

Ok!
Apenas um detalhe a observar aqui é que:   m[j] = rand() % 50; //variável de  0 - 49;

                                                                       m[j] = rand() % 51 //Variável de 0 - 50;

Isso te ajudará a evitar futuros bugs!

Postado

valeu a todos pela ajuda fiz assim e deu certo!!! :)

 

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int n_al, n_dig,i1,i2,i3,i4,v,n_mat;
    int mat[10][10];
    
  printf("Digite um numero de 0 a 50: ");
  scanf("%i",&n_dig);
  printf("Matriz Gerada:\n");
    
    for(i1=0; i1<10;i1++)
              {
              for(i2=0; i2<10;i2++)
                        {
                        n_al=rand()%50;
                         mat[i1][i2]=n_al;
                         printf("  %.2d  ",n_al);      
                        }
                        printf("\n");
              
              }
  v=0;
      for(i3=0; i3<10;i3++)
              {
              for(i4=0; i4<10;i4++)
                        {
                        n_mat=mat[i3][i4];
                        if(n_mat==n_dig)
                        {
                         v=v+1;           
                        }
                               
                        }
                        
              
              }
 
printf("\n\nO numero %i apareceu %i vezes.\n",n_dig,v);
  
  
  system("PAUSE");
  return 0;
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!