Ir para conteúdo
tony_alfa

Dado um vetor inteiro calcular média e desvio padrão

Recommended Posts

Olá galera to com o seguinte exercício abaixo, tentei resolver mas quando roda ele trava e pede para fechar programa, gostaria da ajuda e vocês, obg.

 

Faça um algoritmo que dado um vetor de inteiros calcule a média e o
desvio padrão utilizando somente um loop.

 

 

#include<stdio.h>
#include<math.h>


int main(void){

        float vetor[100], medias=0, soma, media=0, desvio, vari;
        int  n, i=0;

        printf("Digite um numero :\n");
        scanf("%d", &n);


        if(n <= 100){
            for(i=1; i<=n; i++)
                {
                printf("Digite um numero :\n");
                scanf("%f", vetor[i]);
                medias = medias+vetor[i];
                media  = medias/n;
                }

            for(i=1;i<=n;i++)
                {
                soma = soma+((vetor[i]-media)*(vetor[i]-media));
                }
                vari=soma/n;
                desvio=sqrt(vari);

                printf("\n\n Media do conjunto = %f\n", media);
                printf("\n\n Desvio padrao =  %f\n\n", desvio);

return 0;
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O programa trava na seguinte linha de código: 

scanf ( "%f" , vetor [ i ]);

Isso se deve ao fato de aqui se ter esquecido de inserir o operador de endereço de memória que é o &.
Você deve informar para a função de leitura scanf o endereço de memória da variável para a qual você quer ler um valor e não a variável em si. Caso contrário o programa irá travar como é esse o caso. Então a partir da hora em que você adiciona o operador de endereço de memória & nessa linha de código que está fazendo o programa travar o programa simplesmente pára de travar e executa normalmente até o seu final. Colocamos-o logo à esquerda do nome da variável para a qual se quer ler o valor digitado. Então vai ficar:

scanf ( "%f" , &vetor [ i ]);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por JonasFloripa
      Bom dia pessoal..
      Estou com um problema e apareceu quando migrei o sistema ue tenho do php5 para o php7.
      Essa parte do sistema que está dando o problema seria quando quero adicionar o nome do pessoal em uma escala, mas quando seleciono os nomes partindo de quem começa com  a letra 'R', não envia as infomarções. Isso não acontecia no php5.
      Vou colocar o código abaixo e o que mostra quando seleciono o checkbox.
       
       
      <table width="100%" border="0" cellpadding="1" cellspacing="1"> <tr> <td width="9%" align="center"> <input name="conf[]" type="checkbox" value="<?PHP echo $login; ?>"/> </td> <td width="21%"><input name="login_<?PHP echo $login;?>" type="text" value="<?PHP echo $login; ?>" readonly class="negrito"/></td> <td width="13%"><input name="hora2_<?PHP echo $login;?>" type="text" value="<?PHP echo $hora2; ?>" size="4" readonly class="negrito"/></td> <td width="13%"><input name="somah2_<?PHP echo $login;?>" type="text" value="<?PHP echo $somah2; ?>" size="4"readonly="readonly" class="negrito"/></td> <td width="13%"><input name="quantidade_<?PHP echo $login;?>" type="text" value="<?PHP echo $total2; ?>" size="4"readonly="readonly" class="negrito"/></td> <td width="16%"><input name="data_<?PHP echo $login;?>" type="text" value="<?PHP echo $data; ?>" size="10" readonly class="negrito"/></td> <td width="15%"><input name="idescala_<?PHP echo $login;?>" type="text" value="<?PHP echo $idescala; ?>" size="5" readonly class="negrito"/></td> </tr> </table>  
    • Por ph1
      boolean opcao = false; // tem que inicializar com true dentro do laço 'do-while' String resp; Scanner sc = new Scanner(System.in); do { // essas duas variáveis aqui podem ser declaradas dentro do while double media = 0, soma = 0; int j = 0; notas_aluno[j] = 0; for (int i = 0; i < nome_aluno.length; i++) { System.out.println("Insira o nome do aluno: "); nome_aluno[i] = sc.nextLine(); // usa sc.nextLine() //soma = 0; for (j = 0; j < notas_aluno.length; j++) // porque 4 ? usa o notas_aluno.length { System.out.println("Entre com a " + (j + 1) + " ª nota do aluno: " + (i + 1)); notas_aluno[j] = sc.nextDouble(); //notas_aluno[j] = Double.parseDouble(sc.nextLine()); // usa Double.parseDouble(sc.nextLine()) soma = soma + notas_aluno[j]; } media = soma / 5; // pq 5 ? usa o notas_aluno.length String aproveitamento = ""; if (media >= 9 && media <= 10) { aproveitamento = "A"; } else if (media >= 7.5 && media < 9) { // não precisa testar se é < 9 aproveitamento = "B"; } else if (media >= 6 && media < 7.5) { // não precisa testar se é < 7.5 aproveitamento = "C"; } else if (media >= 4 && media < 6) { // não precisa testar se é < 6 aproveitamento = "D"; } else if (media >= 0 && media < 4) { // não precisa testar se é < 4 aproveitamento = "E"; } System.out.println("Média: " + media); System.out.println("Conceito: " + aproveitamento); switch (aproveitamento) { case "A": case "B": case "C": System.out.println("APROVADO"); break; case "D": case "E": System.out.println("REPROVADO"); break; } System.out.print("Deseja Continuar? <s/n>: "); resp = sc.nextLine(); // usa sc.nextLine() if (resp.equalsIgnoreCase("n")) opcao = true; } }while (!opcao); String resp; boolean opcao = false; Scanner sc = new Scanner(System.in); do { System.out.print("Deseja Continuar? <s/n>: "); resp = sc.nextLine(); //} while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n' if(resp.equalsIgnoreCase("n")) { opcao = true; System.out.println("Saiu!"); //break; } }while(!opcao); ...> Prazer a todos. Interessante, seu eu tirar o código entre o d{ e a pergunta para sair, o while funciona perfeitamente, porém se eu retorno como o código para ler as notas e calcular o while não funciona para quando tiver menos de 50 alunos. Não consigo encontrar o erro. Obrigado.
    • 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 cleitonpacheco
      Preciso criar um programa em C que converta um vetor de 32 caracteres (recebidos do usuário), e os caracteres que não forem letras devem ser convertidos em espaço em branco mostrando no final o vetor resultante e a quantidade de espaços em branco. Como seria para fazer usando apenas a biblioteca 'stdio.h'?
       
       
×

Informação importante

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