Ir ao conteúdo

Help at work C++


Jonatha Lima

Posts recomendados

Postado

Pessoal comecei um trabalho, tenho que entregar depois de amanhã!

 

So tem uma parte que falta concluir, que é o item "D".

 

Segue os requisitos: 

 

Escreva um programa que carrega uma matriz de M x N com M e N lidos pelo teclado com  números aleatórios compreendidos entre 1 e 400. Considere o produto M x N<=300. Em seguida escreva um procedimento para carregar e imprimir o conteúdo da matriz.Em seguida implemente os seguintes procedimentos tendo como parâmetro a matriz carregada:

a)      Um  procedimento para verificar e imprimir a quantidade de vezes que cada numero aparece na matriz; os números que não aprecem não devem ser impresso com quantidade zero

B)      Uma função que calcula a soma dos 2 menores números contidos na matriz;

c)       Uma função que calcula a diferença entre os dois maiores números contidos nos vetores (1o maior – 2o maior)

d)     Um metodo que imprima o numero que mais se aproxima da media dos elementos da matriz, informando sua posição na matriz

 

 

Segue o script:

#include <time.h>#include <iostream>#include <cstdlib>#include <stdlib.h>#include <stdio.h>#include <Math.h>using namespace std;int M, N;int numlinhas, numcolunas, limite;int matriz[100][100];int menor = 400;int menor2 = 400;int maior = 0;int maior2 = 0;int aleatorio;int numerosaleatorios[1000];float media;void carrega(){		srand(time(NULL));		for (M=0; M<numlinhas; M++){			for (N=0; N<numcolunas; N++){			aleatorio = matriz[M][N] = rand()%400+1;			numerosaleatorios[aleatorio] += 1;		}	}}void imprime(){		for (M=0; M<numlinhas; M++){			for (N=0; N<numcolunas; N++){			printf("%5d", matriz[M][N]);		}cout<<"\n";cout<<"\n";	}}void imprimeqtdvezes(){		cout<<"ITEM A:"<< endl;		for (int i = 0; i <= 400; i++){		if(numerosaleatorios[i] != 0){		cout << "O numero " << i << " foi repetido " << numerosaleatorios[i] << " vez(es)." << endl;		}	}}void menornumero(){ cout << "\n";cout << "ITEM B:" << endl;		 for(int M=0; M<numlinhas; M++){			for (int N=0; N<numcolunas; N++){ 			if (matriz[M][N]<menor){			menor=matriz[M][N]; 			}		}	}}void calculasoma2menores(){		menornumero();		for (int M=0; M<numlinhas; M++){			for (int N=0; N<numcolunas; N++){			if (matriz[M][N]>menor and matriz[M][N]<menor2){			menor2=matriz[M][N];			}		}	} }void maiornumero(){cout << "ITEM C:" << endl;		for (int M=0; M<numlinhas; M++){			for (int N=0; N<numcolunas; N++){			if (matriz[M][N]>maior){			maior=matriz[M][N]; 			}		}	}}void calculadiferenca2maiores(){	maiornumero();		for (int M=0; M<numlinhas; M++){			for (int N=0; N<numcolunas; N++){			if (matriz[M][N]<maior and matriz[M][N]>maior2){			maior2=matriz[M][N];			}		}	}}void media_num(){	cout << "\n";	float total;		for (M=0; M<=numlinhas; M++){			for (N=0; N<=numcolunas; N++){			total = total + matriz[M][N];		}			media = total/(numlinhas * numcolunas);	}}void dif_media(){	media_num();		int valoraprox = matriz[M][N];	for (M=0; M<numlinhas; M++)	  for (N=0; N<numcolunas; N++)		if (valoraprox == media){		cout<< "O valor aproximado e: " << valoraprox;		}	    if (valoraprox and matriz[M][N] < media){	   		if (matriz[M][N] > valoraprox){	   		cout << "O valor aproximado e: " << valoraprox;		}	}		if (matriz[M][N] and valoraprox > media){		 	if (matriz[M][N] < valoraprox){		 cout << "O valor aproximado e: " << valoraprox;		 }	}		if (matriz[M][N] > media and valoraprox < media){		  	if ((matriz[M][N] - media) < (media - valoraprox)){				cout << "O valor aproximado e: " << valoraprox;		  }	}		if (matriz[M][N] < media and valoraprox > media){			if ((media - matriz[M][N]) < (valoraprox - media)){				cout << "O valor aproximado e: " << valoraprox;			}		}	}/*void pesquisa(){	int num_menor;   for (int M=0;M<numlinhas;M++)         for (int N=0;N<numcolunas;N++)         if(matriz[M][N]==num_menor){		 }		 cout<<num_menor<<" esta na posicao "<<N+1<<" da linha "<<M+1<<"\n";}*/int main(){cout << "*************** Grupo XV - Matriz M x N - JONATHA LIMA *************** " << endl << endl;while (1){cout << "Numero de linhas: ";cin >> numlinhas;cout << "Numero de colunas: ";cin >> numcolunas;if (numlinhas * numcolunas <= 300){cout << "\n";carrega();imprime();imprimeqtdvezes();calculasoma2menores();cout << menor << " é o menor numero, " << menor2 << " é o segundo menor numero.\n"; cout << "O resultado da soma dos dois menores numeros é: " << menor+menor2;cout<<"\n";cout<<"\n";calculadiferenca2maiores();cout << maior << " é o maior numero, " << maior2  << " é o segundo maior numero.\n"; cout << "O resultado da diferenca dos dois maiores numeros é: " << maior-maior2; cout<<"\n";cout<<"\n";media_num();cout << "a media e: " << media << endl <<endl;dif_media();//pesquisa();break; 	}else{cout << "\n";cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>> INSIRA VALORES VALIDOS : (Num. de Linhas * Num. de Colunas <= 300) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl << endl;		}	}}					

Agradeço muito quem puder me ajudar, THX

Postado

Quando eu abri a página e vi os headers coloridos, dentro da tag code, caiu uma lágrima aqui. Pensei que finalmente depois de 50 anos nesse forum eu veria um código identado.

Daí eu desci a tela mais um pouco e vi que não. Sacanagem hein veio... :(

// include <cmath> pro abs() int media = funçãoQueRetornaAMédiaDosNumeros();int diff = 401; // números vão de 1 até 400, certo?int mx, my; for (int x=0; x < 100; x++)    for (int y=0; y < 100; y++) {        if ( abs( media - matriz[x][y] ) < diff ) {            mx = x;            my = y;            diff = abs(media - matriz[x][y]);        }    } // matriz[mx][my] vai guardar o número mais próximo

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!