Ir para conteúdo

Arquivado

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

ph1

Dificuldade em exercício

Recommended Posts

Calcular e imprimir a média aritmética dos números inteiros positivos ímpares inferiores ou iguais a um número N lido inicialmente.

 

#include <cmath> // ou <math.h>
#include <iostream>
#include <cstdlib>
#include <locale.h>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Portuguese");
float m,acm;
int cont,n;
acm = 0;
cout << "Entre com um número qualquer.:\t";
cin >> n;
  for (cont = 0;cont <= n;n++)
    {
    if ((n % 2)==1)
      {
        acm = acm + 1;
        m = acm / n;
      }
    else if ((n % 2) == 0)
        {
         cout << "O número não é ímpar.";
        }
   }
cout << "A média dos" << n << " números ímpares é de:\t" << m;
}
        

Estou com com dificuldade nesse exercício. Porque está dando loop infinito? Não descubro o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola @ph1, seu loop n quebra por duas razoes:

1) Voce ta somando o N, logo cont NUNCA vai ser maior que N e seu N vai pro infinito, daew crasha hehe

2) A sua condição exige que CONT seja maior que N, porem você nunca altera o valor inicial de CONT

 

Mas o problema n ta so no loop, sua matematica tbm ta errada, na media aritmetica (q eu suponho ser a simples), você soma os valores e dividi pela quantia de valores que foram somados, você ta ta fazendo não só a divisão errada (você ta dividindo a quantia de numeros pelo seu limite da pesquisa, o que nao faz sentido), como tbm a quantia de vezes que você dividi, ja q você dividindo a cada loop... da uma olhada no codigo abaixo

 

Espero ter ajudado, qualquer coisa da um grito, abraços

 

EDIT:

Esqueci de dizer, procura ir chamando as bibliotecas só conforme você for usando, assim você evita de ter uma centena de bibliotecas e só usar uma, q é o seu caso

#include <iostream>

using namespace std;

int main()
{
	float soma = 0;
	int acm = 0;
	int i, n;

	cin >> n;
	
	for (i = 1;i <= n; i++)
    {
		if ((i % 2)==1)
		{
			soma += i;
			acm++;
		}
	}
	
	cout << "A media dos números ímpares é de: %f\t" << soma/acm;
	
	return (0);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, entendi a lógica do programa. Tudo é feito encima de i e não de n, n é só para colocar um limite no número de iterações. 

Muito obrigado pela ajuda. Fiz um rascunho e um tipo de teste de mesa.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mamotinho
      Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

       
      declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
    • Por teteuvec
      Prezados boa tarde,
       
      Estou tentando escrever na tela o resultado de um select na tela utilizando WHILE, porém está entrando em loop infinito e gostaria de ajuda para acertar a sintaxe desta técnica.
       
       
      Código apenas com 1 WHILE
      <?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?>  
       
      Código inteiro:
      <?php session_start(); $_SESSION['last_page'] = $_SERVER['PHP_SELF']; $_SESSION['del_message'] = 'Deseja excluir o cliente '; $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $_SESSION['id_base'] = 'id'; require_once('connections.php'); $query_Recordset1 = "SELECT * FROM {$_SESSION['table_base']} WHERE record_caracter_id = '0' order by {$_SESSION['id_base']} DESC"; $Recordset1 = mysqli_query($connect, $query_Recordset1) or die(mysql_error()); $row_Recordset1 = mysqli_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysqli_num_rows($Recordset1); ?> <!doctype html> <html lang='pt-br'> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tupã - Serviços de Engenharia</title> <link href='css/sistema.css' rel='stylesheet' type='text/css' media='all'> <style type="text/css"> #cnpj { display: none; } #contato { display: none; } #endereco { display: none; } </style> </head> <body> <fieldset> <legend>Gerenciamento de Clientes</legend> <table id="tabela"> <thead> <tr> <th>Descrição</th> <th>Contato</th> <th>Projetos</th> <th colspan="3">Ação</th> </tr> <tr> <th></th> <th></th> <th></th> <th colspan="3"><input type="submit" value="Filtrar" /> | <input type="button" onclick="javascript: location.href='#rec_openModal'" value="Adicionar" /></th> </tr> </thead> <?php while ($Recordset1 = $row_Recordset1){?> <tr> <td bgcolor="#F5F5F5"><p> Código: <?php echo $Recordset1['id']; ?> <br /> Cliente: <?php echo $Recordset1['name']; ?> <br /> CPF/CNPJ: <?php echo $Recordset1['cpf_cnpj']; ?> <br /> e-mail: <?php echo $Recordset1['email']; ?> <br /> Celular: <?php echo $Recordset1['cellphone']; ?> <br /> Telefone: <?php echo $Recordset1['telephone']; ?> <br /> Documento de identificação: <?php if(file_exists('imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg')) { echo 'Documento de identificação: <a href=imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg target="_blank"><img src="imagens/view.png" width="24" height="24">'; } else { echo 'Documento de identificação: indisponível'; } ?> </p></td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?> </td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'projects_link_tpm'; $query_Recordset3 = "SELECT * FROM {$_SESSION['table_base']} where people_record_id = {$row_Recordset1['id']} order by {$_SESSION['id_base']} DESC"; $Recordset3 = mysqli_query($connect, $query_Recordset3) or die(mysqli_error($connect)); $row_Recordset3 = mysqli_fetch_assoc($Recordset3); $totalRows_Recordset3 = mysqli_num_rows($Recordset3); while($data3 = mysqli_fetch_assoc($Recordset3)) { echo "Projeto: ".$Recordset3["id"]."</br>"; echo "</br>"; }?> </td> <td width="3%" bgcolor="#F5F5F5"><form action="mysql/update_process.php" method="POST"> <input type="hidden" name="update_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="image" name="submit" src="imagens/edit.png" width="24" height="24"> </form></td> <td bgcolor="#F5F5F5"><form action="mysql/del_process.php" method="POST"> <input type="hidden" name="delete_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="hidden" name="delete_register" value="<?php echo $row_Recordset1['name'] ?>"> <input type="image" name="submit" src="imagens/delete.png" width="24" height="24"> </form></td> </tr> <?php }?> </table> </fieldset> <div id="rec_openModal" class="modalDialog"> <div> <a class="close" title="Fechar" href="#close">X</a> <fieldset> <legend>Realizar cadastro</legend> <br> <label>Modalidade:</label> <select name="modality" onChange="mostraDiv(this.value)"> <option value="1">Cliente CPF</option> <option value="2">Cliente CNPJ</option> <option value="3">Contato de cliente</option> <option value="4">Endereço de cliente</option> </select> <br /> <div id="cpf"> <form action="mysql/insert_process.php" method="post" id='1'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>CPF: </label> <input name='cpf_cnpj' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="cnpj"> <form action="mysql/insert_process.php" method="post" id='2'> <br> <label>Nome da empresa: </label> <input name='name' type='text' /><br /> <br> <label>CNPJ: </label> <input name='cpf_cnpj' type='text' data-mask="00.000.000/0000-00" /><br /> <br> <label>e-mail: </label> <input name='email' type='email' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="00000-000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' /><br /> <br> <label>Documento de identificação: </label> <input name='doc_id' type='file' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="contato"> <form action="mysql/insert_process.php" method="post" id='3'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>cpf: </label> <input name='cpf' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="1"><br> <label>Contato do cliente </label> <select name="link_record"> <?php while ($data = mysqli_fetch_array($Recordset1)) { echo("<option value='".$data['id']."'>".$data['name']."</option>"); } ?> </select><br /> <INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="endereco"> <form action="mysql/insert_process.php" method="post" id='4'> <br> <label>CEP: </label> <input name='cep' type='text' /><br /> <br> <label>Logradouro: </label> <input name='address' type='text' data-mask="00000-000" autocomplete="off" /><br /> <br> <label>Número: </label> <input name='number' type='text' /><br /> <br> <label>Bairro: </label> <input name='neighborhood' type='text' /><br /> <br> <label>Cidade/UF: </label> <input name='city' type='text' /><input name='uf' type='text' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="4"><INPUT TYPE="hidden" NAME="action" VALUE="1"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> </fieldset> </div> </div> </body> </html> <?php mysqli_free_result($Recordset1); mysqli_free_result($Recordset2); mysqli_free_result($Recordset3); ?>  
    • Por quantic2016
      estou com esse script de scroll infinito, ele mostra para min os 10 primeiros artigos , ate aqui ok , porem como eu faço para ele mostrar mais 10 artigos depois dos 10 primeiros ???
      <?php include "conexao.php";?> <!DOCTYPE html> <html lang="pt-br"> <head> <title>Sistema de busca igual facebook</title> <meta charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="css.css" /> <link rel="stylesheet" type="text/css" href="lib/css/default.css" /> <script src="lib/js/jquery.js" type="text/javascript"></script> <script src="js-all.js" type="text/javascript"></script> </head> <body> <h1>Infinite Scrolling, Demo 2</h1> <ul id="posts"> <li> <article> <header> <h1>This Is an Article</h1> </header> <?php include "load_first.php";?> </article> </li> </ul> <p id="loading"> <img src="images/loading.gif" alt="Loading…" /> </p> </body> </html> <script type = "text/javascript"> $(document).ready(function() { var win = $(window); // Each time the user scrolls win.scroll(function() { // End of the document reached? if ($(document).height() - win.height() == win.scrollTop()) { $('#loading').show(); $.ajax({ url: 'load_second.php?id=<?php echo $id; ?>', dataType: 'html', success: function(html) { $('#posts').append(html); $('#loading').hide(); } }); } }); }); </script> load_first.php
      <?php include "conexao.php"; $mostraDados = mysqli_query($conecta, "SELECT * FROM artigo ORDER BY data DESC LIMIT 10")or die (mysqli_error()); while($linha = mysqli_fetch_array($mostraDados)) { $id = $linha["id"]; $titulo = $linha["titulo"]; echo " <p class='tm' id=$id > $id $titulo </p>"; } ?> load_second.php
      <?php include "conexao.php"; $last_msg_id = $_GET ['id']; $mostraDados = mysqli_query($conecta, "SELECT * FROM artigo WHERE id < '$last_msg_id' ORDER BY id DESC LIMIT 5")or die (mysqli_error()); $last_msg_id = " "; while( $linha = mysqli_fetch_array($mostraDados)) { $id = $linha["id"]; $titulo = $linha["titulo"]; $endereco = $linha["endereco"]; $cep = $linha["cep"]; ?> <div id = "<?php echo $id; ?>" class = "message_box" > <?php echo $id; ?> <?php echo $titulo; ?> </div> <?php } ?>
×

Informação importante

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