Ir para conteúdo

POWERED BY:

Arquivado

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

Ripper

Problema com matrizes

Recommended Posts

Pessoal tenho o seguinte trabalho para fazer:

O seu objetivo será desenvolver um algoritmo que simule o funcionamento de um programa que extrairá dados

estatísticos de uma matriz gerada aleatoriamente.

Inicialmente, o programa solicita ao usuário que informe a dimensão da matriz. O programa então deverá gerar uma

matriz com a dimensão informada e preenchida com valores aleatórios entre 1 e 99.

Exemplo:

Dimensão da matriz: 4

Matriz gerada pelo programa:

25 12 47 20

91 84 3 7

68 75 20 78

81 25 43 36

O programa deve exibir a matriz gerada na tela depois de criada. Em seguida, o programa deve solicitar ao usuário

qual dado estatístico ele deseja saber. As opções que o programa deve fornecer são:

 Par e Impar: Nesta opção, o programa retorna a quantidade de números pares e de números impares existentes

na matriz. No exemplo, são 7 pares e 9 impares.

 Maior número: Nesta opção, o programa retorna o maior número existente na matriz. No exemplo, o número

retornado é 91.

 Menor número: Nesta opção, o programa retorna o menor número existente na matriz. No exemplo, o número

retornado é 3.

 Número que mais se repete: Nesta opção, o programa retorna o número que mais se repete dentro da matriz,

além da quantidade de vezes que ele se repete. No exemplo, o número retornado é 20 e a quantidade de vezes

é 2.

 Média: Nesta opção, o programa retorna a média aritmética dos números existente na matriz. No exemplo, o

valor retornado é aproximadamente 44,68.

 Números primos: Nesta opção, o programa retorna a quantidade de números primos existente na matriz. No

exemplo, o valor retornado é 4.

Ao fim do processamento de uma opção escolhida pelo usuário, o programa deve retornar ao menu de opções. O

programa deve possuir no menu a opção de encerrar, para que o usuário encerre a execução do programa.

Com exceção da primeira opção, todas as demais opções do programa devem ser desenvolvidas como função. A

primeira função deve ser desenvolvida como procedimento. Além disso, cada opção deve ter o seu fluxograma criado

e adicionado ao trabalho.

 

Eu já fiz o seguinte:

 

#include <stdio.h>
#include <stdlib.h>

int opcao, c1, c2;
int i, j, num;
int matriz[i][j];

void MaiorNumero(int matriz[i][j]){
    int a;
    a = matriz[1][1];
    for(i = 0; i<num; i++)
      for(j = 0; j<num; j++){
         if (a < matriz[i][j])
            a = matriz[i][j];
      }
      printf("\nO maior numero e %d\n",a);
}

void MenorNumero(int matriz[i][j]){
    int a;
    a = matriz[1][1];
    for(i = 0; i<num; i++)
      for(j = 0; j<num; j++){
         if (a > matriz[i][j])
            a = matriz[i][j];
      }
      printf("\nO menor numero e %d\n",a);
    }

void NumeroRepete(){
    }

void Media(int matriz[i][j]){
    int total, media;

    for(i = 0; i<num; i++)
      for(j = 0; j<num; j++){
          total = total + matriz[i][j];
      }
    media = total/(i*j);
    printf("\nA media e %d\n", media);
}

void NumerosPrimos(){
    }  

int main() {

   printf("Bem-vindo ao programa estatistico de matrizes\n");
   printf("Digite a dimensao da matriz\n");
   scanf("%d", &num);

   for(i = 0; i<num; i++)
     for(j = 0; j<num; j++)
       matriz[i][j] = 0;   

   while(opcao != 0){
      printf("1- Par ou impar\n");
      printf("2- Maior numero\n");
      printf("3- Menor numero\n");
      printf("4- Numero que mais se repete\n");
      printf("5- Media\n");
      printf("6- Numeros primos\n");
      printf("0- Sair\n");
      scanf("%d", &opcao);

   switch(opcao){
                 case 1:
                      for(i = 0; i<num; i++)
                       for(j = 0; j<num; j++){
                             if (matriz[i][j]%2 == 0)
                               c1++;
                             else 
                               c2++;
                       }
                      printf("Temos %d numeros pares\n", c1);
                      printf("Temos %d numeros impares\n", c2);
                      break;
                 case 2:
                      MaiorNumero(matriz[num][num]);
                      break;
                 case 3:
                      MenorNumero(matriz[num][num]);
                      break;
                 case 4:
                      NumeroRepete(matriz[num][num]);
                      break;
                 case 5:
                      Media(matriz[num][num]);
                      break;
                 case 6:
                      NumerosPrimos(matriz[num][num]);
                      break;
                 default: 
                      printf("Numero invalido. Digite novamente\n");
                      scanf("%d", &opcao);
                 }                   
   }
   system("pause");   
   return 0; 
}

 

Como faço para declarar uma matriz com dimensões desconhecidas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única forma que conheço é de forma dinâmica.

 

Flw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.