Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Duvida basica: zerar contador e/ou apagar variavel nesse codigo


mestrelan

Pergunta

Boa noite! estou iniciando com o PHP e tenho uma duvida realmente muito básica. Desculpa a pergunta, mas eu não estou conseguindo zerar o contador no final desse código. Por ex, quando eu entro com o vetor 1,1,2,2,3 a mensagem no final é:


O valor 3 na posição 0 repete 5 vezes
O valor 3 na posição 1 repete 5 vezes
O valor 3 na posição 2 repete 5 vezes
O valor 3 na posição 3 repete 5 vezes
O valor 3 na posição 4 repete 5 vezes

segue o código:

<!doctype html>
<html>
   <head>
      <meta charset="utf-8">
      <title>Lista 1 - Estrutura de Dados</title>
   </head>
	<body>
		<?php
			echo'<form method="post">
			 <input type="submit" name="enter" value="começar" />
			 </form>';
			if (isset($_POST['enter'])){
				echo '<form method="post">
				<input type="text" name="n" />
				<input type="submit" name="tamanho" value="entre com o tamanho do vetor" />
				</form>';
			}
			if (isset($_POST['tamanho'])){
				$n = $_POST['n'];
				$i = ;
				echo '<form method="post">';
		         for ($i = ; $i <= $n; $i++) {
            		echo "Entrada $i: <input type='number' name='entradas[$i]' required><br><br>";
         		}
         		echo '<input type="submit" name="vetor"></form>';
      		}
			if (isset($_POST['vetor'])){
				$quantidade = sizeof($_POST['entradas']);
				//$quantidade começa do 1, mas o $k começa do 0, por isso o sinal de menor no for.
				$vetor = $_POST['entradas'];
				$k = ;
				$j = ;
				for ($k = ; $k < $quantidade; $k++) {
					for ($j = ; $j < $quantidade; $j++) {
						if($vetor[$k] <> $vetor[$j]) {
							echo "O valor $vetor[$k] na posição $k é diferente do valor $vetor[$j] na posição $j <br>";
						}
					}
				}
				$k = ;
				$j = ;
				for ($k = ; $k < $quantidade; $k++) {
					$cont = ;
					for ($j = ; $j < $quantidade; $j++) {
						if($vetor[$k] = $vetor[$j]) {
							$cont = $cont + 1;
						}
					}
					echo "O valor $vetor[$k] na posição $k repete $cont vezes <br>";
					$cont = ;
				}
			}
		?>
	</body>
</html>

obs: tem um 0 depois de cada igualdade que não sei porque não esta saindo quando copio aqui.

Gostaria de saber como faço para exibir quantas vezes cada valor do vetor se repete e qual é o valor que mais se repente.

Fico também muito agradecido com dicas de códigos.
Muito Obrigado!

Editado por mestrelan
obs: tem um 0 depois de cada igualdade que não sei porque não esta saindo quando copio aqui.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Resolva assim:

      <?php
      echo'<form method="post">
             <input type="submit" name="enter" value="começar">
             </form>';
      if (isset($_POST['enter'])) {
         echo '<form method="post">
                  <input type="number" name="n" required autofocus>
                  <input type="submit" value="entre com o tamanho do vetor">
                  </form>';
      }
      if (isset($_POST['n'])) {
         $form = '<form method="post">';
         for ($i = ; $i < $_POST['n']; $i++) {
            $form .= "Entrada $i: <input type='number' name='entradas[$i]' required><br><br>";
         }
         echo $form . '<br><input type="submit"></form>';
      }
      if (isset($_POST['entradas'])) {
         $entradas = $_POST['entradas'];
         $msg = null;
         foreach ($entradas as $k => $v) {
            $msg .= "O valor $v na posição $k é diferente de: <ul>";
            foreach ($entradas as $pos => $value) {
               if ($v != $value) {
                  $msg .= '<li>' . $value . ' na posição ' . $pos . '</li>';
               }
            }
            $msg.='</ul>';
         }
         $msg.='<hr>';
         // contar valores em um array:
         $contar = array_count_values($entradas);
         foreach ($contar as $v => $n) {
            $msg.= "<p>O valor $v se repete $n vezes</p>";
         }
         echo $msg;
      }

 

é...  o fórum tá comendo os zeros!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...