Ripper 0 Denunciar post Postado Março 13, 2012 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
GBecker 51 Denunciar post Postado Março 24, 2012 A única forma que conheço é de forma dinâmica. Flw! Compartilhar este post Link para o post Compartilhar em outros sites