Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 ?
Carregando comentários...