Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruka284

Programa que detecte dois numeros seguidos iguais

Mensagens Recomendadas

Ruka284

Este programa tem que fazer:

Uma sequencia de 30 numeros ao utilizador, e que no fim apresente o somatorio dos valores aceites. Se o utilizador introduzir dois numeros consecutivos iguais, o programa deve rejeitar o segundo e pedir outro numero em vez desse.

#include <stdio.h>
#include <stdlib.h>
int main(){

int num, sequencia, soma=0, val, i,ok;

 do
 {
   printf("Insira a quantidade de valores a serem considerados (min = 1) e (max <= 30) : ");
   fflush(stdout);
   ok = scanf("%d", &num) && num > 0;
   while (getchar() != '\n'); // limpa o buffer
 } while (!ok);
 // executar o ciclo enquanto o valor da variável ok for considerado falso (zero)

 for (i = 0; i <= 30; i++)
 {
   do
   {
  printf("Insira o %do valor : ", i + 1);
  fflush(stdout);
  ok = scanf("%d", &val);
  while (getchar() != '\n');
   } while (!ok);

 soma = soma + val;

   printf("A soma= %d\n", soma);

}

  getchar();
  return 0;
}

So falta meter introdução dos números iguais, não estou a ver maneira como introduzir

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Arranja outra variavel (por exemplo, com o nome: valor_anterior) para guardar o valor_anterior (podes inicializar com um numero improvavel).

Depois, dentro do ciclo do, alteras a variavel ok tendo em consideracao os valores val e valor_anterior (alem do valor de retorn do scanf).

Happy Coding!

Editado por pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruka284

Arranja outra variavel (por exemplo, com o nome: valor_anterior) para guardar o valor_anterior (podes inicializar com um numero improvavel).

Depois, dentro do ciclo do, alteras a variavel ok tendo em consideracao os valores val e valor_anterior (alem do valor de retorn do scanf).

Happy Coding!

PMG nao estou a perceber ??

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Para verificar se o numero do utilizador é repetido tens de ter 2 numeros: o val e o valor_anterior!

/* ... */
if (val == valor_anterior) {
   /* numero repetido */
} else {
   /* numero nao repetido */
   /* ... */
   valor_anterior = valor; /* guarda o mais recente numero para comparacao posterior */
}
/* ... */


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruka284

#include <stdio.h>
#include <stdlib.h>
int main()
{

int num, sequencia, soma=0, val, i, ok, dados, valores;
int valor_anterior, repetido, n_repetido, valor, min=1, max;


 do
 {
   printf("Insira a quantidade de valores a serem considerados (min = 1) e (max <= 30) : ");
   fflush(stdout);
   ok = scanf("%d", &num) && num > 0;
   while (getchar() != '\n');
 } while (!ok);

  if (num > 30)
  {
   printf ("Erro de introduçao de dados  \n", dados);
  }


 for (i = 0; i <= 30; i++)
 {
   do
   {
  printf("Insira o %do valor : ", i + 1);
  fflush(stdout);
  ok = scanf("%d", &val);
  while (getchar() != '\n');
   } while (!ok);

 soma = soma + val;

   printf("A soma= %d\n", soma);

   if (val == valor_anterior)
{
   printf("Numero repetido   \n", repetido);
   }   
   else
 {
   printf("Numero nao repetido   \n", n_repetido);
   valor_anterior = valor;
 }

}

  getchar();
  return 0;
}

Esta sempre a sair numero nao repito

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.