Jump to content
Hashira do Vento

Exercício com Matriz de linha específica

Recommended Posts

O exercício pede o que eu faça um código com uma matriz, onde eu peça uma linha qualquer ao usuário, e nela será feito a soma ou média dos elementos contidos.

O problema é na hora da decisão do usuário na hora de escolher entre média ou soma, escrevendo a letra inicial de uma dessa palavras em maiúsculo. O "If" simplesmente não funciona, e eu acho que seja essa minha dificuldade, pois quando tirei o if, a soma funcionou normalmente (com o código atual a soma fica igual a zero no printf final). E sim, eu pesquisei a fundo sobre o tipo char, mas mesmo assim não consegui resposta alguma para a solução do meu problema :/

Segue o código:

Obs: Claramente, o meu código não está terminado (ainda falta pôr a parte da média), a partir do momento em que eu solucionar esse problema principal, creio que conseguirei finalizá-lo sem mais contratempos.

 

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


int main (void){

setlocale (LC_ALL, "Portuguese");

float M [2][2], media;
int lin, x, soma1, soma2;
char op[5];

printf ("Preencha a matriz: \n"); 							
	for (int l = 0; l<2; l++) { //linha							
		for (int c = 0; c<2; c++ ) { //coluna
		scanf ("%f", &M[l][c]);
		
		}
	}
	printf ("Que operação você quer? S ou M?\n"); //Entrada do char, escolha da operação
	scanf ("%s", op);
	printf ("Em qual linha da matriz a operação deve ser realizada?\n");
	scanf ("%d", &x);
	
	for (int l = x; l==x; l++) {
		for (int c = 0; c<2; c++ ){
		printf ("%f \n", M[l][c]);//só mostrando os numeros da linha (ignore)
		
		if (op=="S") //tenho quase certeza que o problema se encontra aqui
		soma1= M[l][c]+soma1;

		
		
		}

	}
printf ("O resultado da soma deu %d", soma1); //e na hora de mostrar a soma, ela sempre aparece como zero

}

Share this post


Link to post
Share on other sites

declara op como char mesmo,  sem ser vetor;

antes do scanf que você entra o op da o comando: 

__fpurge(stdin); se você tiver em linux ou  fflush(stdin) se você tiver em windows; isso limpa o buffer do teclado
 
if (op=="S") troca por if(strcomp("S", &op));

você tem que dar 

#include <string.h>

 

aí nesse if você incrementa soma1

 

ainda, soma1 e a matriz talvez devam ser ambas int ou ambas float, nao diferentes

 

aqui funcionou, tenta ai e avisa qualquer coisa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By eliasfarias
      Preciso pegar um resultado de uma soma a partir de uma variável predefinida antes.
      ex: 
      $valor=500
      $consulta = $pdo->query("SELECT* FROM produtos where  status_pago='0' ");
      while ($resultado = $consulta ->fetch(PDO::FETCH_ASSOC)) {
       
      //listar um número de linhas cuja soma de todos os produtos juntos fosse igual a variável $valor
       
      }
      Se alguém puder me dar uma luz agradeço,
      Obrigado.
    • By Josues
      Bom dia!
      Gostaria de uma auxilio sobre concatenação de números inteiros em uma matriz bidimensional,
      estou fazendo um trabalho da faculdade e me deparei com essa barreira.
      No programa deve conter duas matrizes de entrada e uma de matriz que vai receber os valores concatenados das duas.
      A matriz é 1 por 2
      L = 1 e C = 2
      no resultado que será mostrado é ex:
      matriz 1 [0][0]: 1
      matriz 1 [0][1]: 1
      Matriz 2 [0][0]: 1
      Matriz 2 [0][1]: 0
       
      Matriz Resultado:
      11            10
      11            10
       
      tem como fazer essa com catenação com inteiros? estou no segundo semestre da faculdade é e uma atividade avaliativa..
       
       
    • By P4870
      Sou estudante do 1º Ano do curso técnico em Informática do IFSP, e preciso de ajuda para fazer esse Algoritmo usando o visuAlg.
       
      01) Levando em consideração o início dos sistemas de informatização as informações eram armazenadas em arquivo do tipo texto. Analisando internamente estes arquivos pode-se notar que nada mais são do que matrizes, pois cada coluna representava um campo e cada linha uma tupla.
       
      Partindo desta informação construa uma matriz para armazenar o RA, CPF e um código para 40 alunos (no CPF digitar somente os números) e uma matriz que guardará 4 notas de 40 alunos e seus respectivos códigos, criando assim um tipo de relacionamento entre as duas matrizes. O primeiro CPF da matriz 1 representa o aluno que possui as 4 notas da primeira posição da segunda matriz. Após o preenchimento de todos os dados das 2 matrizes você deverá perguntar qual o tipo de consulta deverá ser realizada (1-RA, 2-CPF e 3-Código) se for escolhido a opção 1 deve ser solicitado o RA e pesquisar o mesmo na matriz e mostrar o RA, as 4 notas e a média das 4 notas do aluno, se a opção for 2 você deverá solicitar o CPF e também mostrar o CPF, as 4 notas e a média das 4 notas do aluno e se a opção for 3 você deverá solicitar o CÓDIGO e também mostrar o Código, as 4 notas e a média das 4 notas do aluno. Em ambas as consultas deve ser mostrado a situação do aluno (Aprovado quando a média for no mínimo 6; Recuperação quando a média for no mínimo 4 e não chegar a 6; e Reprovado se a média for inferior a 4).
       
      Ao mostrar cada resultado o sistema deve pedir se o usuário deseja fazer uma nova pesquisa.
       
      Caso deseje deve digitar S(SIM) para continuar ou N(NÃO) para finalizar.
    • By marlone
      Preciso fazer uma consulta no banco onde eu pego total gasto por CPF, somando cada row que for do mesmo CPF por exemplo:
       
       
      Cpf    ctro    vlr               vlrtotal
      158   166     1000         5000
      158   156     1000         5000
      158   1644   3000        5000
       
      159   168     2000         6000
      159   154     2000         6000
      159   111     2000         6000
       
      É possível?
    • By pachecok
      Estou iniciando em programação e tenho um trabalho em C que devo:
       
      Construir um programa que leia uma matriz 7x7 de inteiros.
      Após a leitura, calcular o somatório apenas dos elementos abaixo destacados da matriz lida.
      Mostre, os elementos destacados e o somatório.
       
      A soma deve ser entre as posições da matriz refentes a imagem em anexo. 
      É esta a dificuldade que eu encontrei, não sei os passos para realizar esta soma em específico então provavelmente a minha tentativa abaixo foi bizarra. 
       
      Alguém poderia me ajudar? Agradeço desde já. 
       
      #include<stdio.h> #include<conio.h> #define linha 7 #define coluna 7 int main (void ) { int i, j, matriz[linha][coluna], result, soma; printf ("\nDigite valor para os elementos da matriz\n\n"); for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ printf ("\nElemento[%d][%d] = ", i, j); scanf ("%d", &matriz[ i ][ j ]); } } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ printf ("%i", matriz[i][j]); } printf("\n"); } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ result=result+matriz[i][j]; } } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ soma=soma+matriz[3][3]+matriz[4][2]+matriz[4][3]+matriz[4][4]+matriz[5][1]+matriz[5][2]+matriz[5][3]+matriz[5][4]+matriz[5][5]+matriz[6][0]+matriz[6][1]+matriz[6][2]+matriz[6][3]+matriz[6][4]+matriz[6][5]+matriz[6][6]; } } printf("\n\nA soma de todos valores da matriz: %d\n", result); printf("\n\nA soma dos valores solicitados: %d\n", soma); }  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.