Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

}

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por thiago_tw
      eu to com uma tarefa que preciso de ajuda, já tentei alguns algoritmos que achei por aqui mas nunca dá certo, mandei a imagem do que é para ser feito, agradecido se me ajudarem

    • Por BGSJunior
      Olá!
      Tenho uma tabela com os campos id, servico e valor. Preciso somar os valores contidos nos campos 'valor' de acordo com os filtros aplicados. Veja:
       
      SELECT *, SUM(valor) AS totalValores FROM financeiro_entrada WHERE servico LIKE "%suporte%"  
      Acima quero mostrar todos os serviços do tipo "suporte" e o campo 'totalValores' com o total dos serviços em cada registro encontrado. Assim:
       

       
      Qual SQL devo criar para mostrar os registros acima? O SQL que fiz mostra apenas um registro. Assim:
       
       
       
      Preciso mostrar todos os registros que contenha 'suporte' como serviço. Assim: 
       

    • Por chalamisterio
      Oi boa noite sou novo na programação e também no javaScript.
      Estou tentando fazer um Exercício onde é digitado a quantidade de Alunos é adicionada.
      Após a isso é digitado o nome do aluno e suas três notas.
      O programa deve calcula a média e dizer o status do aluno. Se é aprovado ou em exame e reprovado.
      o código parece estar corrento mas não exibe não na tela.
      Acho que nem entra no Loop do for
      Mas se alguém puder me ajudar fico grato
       



    • Por Pavolin9
      Bom dia, estou desenvolvendo um sistema bem simples de estoque onde os itens serao armazenados em uma matriz segue codigo:
          package main;          import java.io.Console;     import java.util.Arrays;     import java.util.Scanner;          public class IncluirItem{         public static void main(String[] args) {             String[][] itens = new String[2][5];             String[] campos = new String[7];             int opcao = 0;             int remover;             int verificar = 0;             int adcionar = 0;             int tamanho = 2;                          Scanner sc = new Scanner(System.in);                          campos [1] = "Nome";             campos [2] = "Codigo de barras";             campos [3] = "quantidade";             campos [4] = "validade";             campos [5] = "data de entrada";                          do {                 System.out.println("\n\n### Sistema de estoque - simplificado ###");                 System.out.println("=========================================");                 System.out.println("      |     1 - Adcionar itens   |");                 System.out.println("      |     2 - Excluir itens    |");                 System.out.println("      |     3 - Mostrar itens    |");                 System.out.println("      |     0 - Sair             |");                 System.out.println("=========================================\n");                                  System.out.println("Escolha uma opcao: ");                 opcao = sc.nextInt();                 System.out.print("\n");                                  switch (opcao) {                 case 1:                     System.out.println("Cadastro de itens: ");                     //Adciona itens                      for (int i = 0; i <2; i++) {                         System.out.println("Adcionar item? ");                         System.out.println("1 para sim \n2 para nao: ");                         adcionar = sc.nextInt();                         if (adcionar == 1) {                             System.out.printf("%d. item \n", (i+1));                             verificar = verificar + 1;                             for (int j=0; j < 5; j++) {                                     System.out.printf("%s ", campos[j+1]);                                 System.out.printf("= ", i,(j+1));                                 itens[i][j] = sc.next();                                                              }                             System.out.printf("\n");                         }                         else {                             break;                         }                     }                                              break;                 case 2:                     //Remove itens                     System.out.println("Exclusao de itens: ");                     if(verificar > 0) {                         for (int i = 0; i <2; i++) {                                 System.out.printf("%d. item \n", (i+1));                             System.out.printf("ID do produto= 00%d \n", (i+1));                             System.out.printf("\n");                         }                     }                     else {                         System.out.println("Nenhum item listado!");                     }                     System.out.println("\nEscolha o numero do item a ser removido: \n");                     remover = sc.nextInt();                     for (int i = 0; i <2; i++) {                         if(remover == 2) {                         itens[i] = itens[i-1];                         }                     }                     break;                 case 3:                     //Mostra itens                     if(verificar > 0) {                                                      for (int i = 0; i <2; i++) {                                     if (verificar == 2) {                                 System.out.printf("%d. item \n", (i+1));                                 System.out.printf("ID do produto= 00%d \n", (i+1));                                 for (int j=0; j < 5; j++) {                                         System.out.printf("%s ", campos[j+1]);                                     System.out.printf("= %s \n", itens [i][j]);                                 }                                 System.out.printf("\n");                             }                             else {                                         itens = Arrays.copyOf(itens, tamanho - 1);                                         verificar = 0;                                         System.out.printf("%d. item \n", (i+1));                                         System.out.printf("ID do produto= 00%d \n", (i+1));                                         for (int j=0; j < 5; j++) {                                                 System.out.printf("%s ", campos[j+1]);                                             System.out.printf("= %s \n", itens [i][j]);                                         }                                         System.out.printf("\n");                                         break;                                 }                         }                     }                     else {                         System.out.println("Nenhum item listado!");                     }                                          break;                 default:                     System.out.println("Opção Inválida!");                     break;                 }             } while(opcao != 0);         }     }  
      Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.
       
    • Por 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.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.