Ir ao conteúdo
  • Cadastre-se

C++ exercicio de matriz


kptoide
Ir à solução Resolvido por Freator,

Posts recomendados

  • Solução
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>


/* Faça um programa que preencha uma matriz 3x4 de valores reais, calcule e mostre:
a quantidade de elementos pares
a quantidade de elementos ímpares
a média de todos os elementos 
*/

int main()
{
	setlocale(LC_ALL, "PORTUGUESE");
	int matriz[3][4];
	int valor = 1, media = 0, pares = 0, impares = 0, contador = 0;
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<3; j++) //incremento em matriz com 2 dimensões
		{
			matriz[j][i] = valor;
			valor++;
			
			if(matriz[j][i]%2 == 0) //PAR
			{
				pares++;
			}
			else //impar
			{
				impares++;
			}
			media += matriz[j][i]; //soma de todos os valores
			contador++; //contador para realizar divisão pelo número de valores
			printf("elementos: %d\t", matriz[j][i]);
		}
		
	}
	media = media/contador; //gera media
	
	printf("\na quantidade de elementos pares: %d\n", pares);
	printf("a quantidade de elementos ímpares: %d\n", impares);
	printf("a média de todos os elementos : %d\n", media);
	
	//Os valores foram de 1 a 12, caso queira testar, mude o inicial da variavel valor ou o incremento do mesmo dentro do laço.
	
	
	return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Link para o comentário
Compartilhar em outros sites

preciso Desenvolver um programa em linguagem C para resolver os seguintes problemas com matrizes
quadradas de dimensão “DIM” (constante):
1) Preencher os dados de uma matriz;
2) Modificar a Matriz de forma que os dados fiquem de cabeça para baixo. Exemplo (3x3):
[123,456,789]
outro programa para Rotacione a Matriz para a direita;
outro para rotacionar para esquerda.
alguém pode me ajudar?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

/*Faça um programa que preencha uma matriz 3x4 de valores reais, calcule e mostre:

a quantidade de elementos pares

a quantidade de elementos ímpares

a média de todos os elementos*/

 

#include <iostream>

using namespace std;

int main()

{

int linhas = 3, colunas = 4, matriza[linhas][colunas], contadorpar=0, contadorimpar=0, media,soma;

 

for (int i = 0; i < linhas; i++)

{

for (int j = 0; j < colunas; j++)

{

cout << "Digite o valor do " << i << " elemento da coluna " <<j << endl;

cin >> matriza[i][j];

if (matriza[i][j] %2 == 0)

{

contadorpar= contadorpar +1;

}

if (matriza[i][j] %2 != 0)

{

contadorimpar= contadorimpar +1;

}

soma= matriza[i][j] + matriza[i][j];

media=soma /12;

}

}

for (int i=0; i<linhas; i++)

{

for (int j=0; j<colunas; j++)

{

cout << " | " <<matriza[i][j];

}

cout <<endl;

}

cout << "Existe " <<contadorpar << " elementos PARES" <<endl;

cout << "Existe " <<contadorimpar << " elementos ÍMPARES " <<endl;

cout << "Média= " <<media <<endl;

}

Link para o comentário
Compartilhar em outros sites

@izadora-fernandes Você postou um programa em C++ mas o enunciado fala de um programa em C

 

São linguagens bem diferentes.

 

Use o botão <> code para formatar o texto, como está descrito no forum.

 

Veja o seu programa usando esse botão:

 

/*Faça um programa que preencha uma matriz 3x4 de valores reais, calcule
e mostre:
a quantidade de elementos pares
a quantidade de elementos ímpares
a média de todos os elementos*/

#include <iostream>
using namespace std;

int main()
{
    int linhas = 3, colunas = 4, matriza[linhas][colunas],
        contadorpar = 0, contadorimpar = 0, media, soma;

    for (int i = 0; i < linhas; i++)
    {
        for (int j = 0; j < colunas; j++)
        {
            cout << "Digite o valor do " << i << " elemento da coluna "
                 << j << endl;
            cin >> matriza[i][j];
            if (matriza[i][j] % 2 == 0)
            {
                contadorpar = contadorpar + 1;
            }

            if (matriza[i][j] % 2 != 0)
            {
                contadorimpar = contadorimpar + 1;
            }

            soma = matriza[i][j] + matriza[i][j];
            media = soma / 12;
        }
    }

    for (int i = 0; i < linhas; i++)
    {
        for (int j = 0; j < colunas; j++)
        {
            cout << " | " << matriza[i][j];
        }
        cout << endl;
    }

    cout << "Existe " << contadorpar << " elementos PARES" << endl;
    cout << "Existe " << contadorimpar << " elementos ÍMPARES " << endl;
    cout << "Média= " << media << endl;
}

 

Sobre seu programa:

 

  • sugiro trocar Existe por Existem nessas linhas
     
        cout << "Existe " << contadorpar << " elementos PARES" << endl;
        cout << "Existe " << contadorimpar << " elementos ÍMPARES " << endl;

     

            if (matriza[i][j] % 2 == 0)
            {
                contadorpar = contadorpar + 1;
            }

            if (matriza[i][j] % 2 != 0)
            {
                contadorimpar = contadorimpar + 1;
            }

 

Esses dois if chamam muita atenção

 

Um int que não é impar é par. É a ordem das coisas.

  • Não tem um else no primeiro if.
  • Mais ainda, se sabe o total de elementos da matriz então não precisa contar os pares E os ímpares.
  • se tem apenas um comando não precisa de chaves

Ignorou o resto do enunciado, que fala dos programas para fazer a tal rotação da matriz.

 

Deixou o cálculo da soma dentro do loop... Testou isso?

 

Em 24/11/2017 às 15:27, Meire Moura Reis disse:

2) Modificar a Matriz de forma que os dados fiquem de cabeça para baixo. Exemplo (3x3):
[123,456,789]
outro programa para Rotacione a Matriz para a direita;
outro para rotacionar para esquerda.
alguém pode me ajudar?

 

Postou de novo o mesmo problema no mesmo tópico, @Meire Moura Reis?

 

Não entendi o exemplo... Se é apenas o caso de inverter a 1a e a 3a linha poderia ter mostrado o antes e o depois...

 

Rotacionar é trivial. Apenas considere que vai deslocar os elementos para a esquerda ou para a direita. E salve o primeiro antes se for rodar para a esquerda, claro. E o último antes se for rodar para a direita.  E depois coloque de volta no lugar definitivo...

 

E entenda que eles vão estar todos alinhadinhos na memória. Não se trata de rodar na verdade. Basta copiar pro lado certo.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!