Ir ao conteúdo

ajuda


willian91

Posts recomendados

Postado

me ajudem preciso fazer u programa que pergunte 10 números inteiros que saia do programa se escreverem 2 números consecutivo exemplo 1 2 depois imprima na tela o maior o menor a media e a soma dos números.

por favor ajuda ai e explica como faz no fonte.

Já agradeço

Postado

Use um laço com contador para coletar os 10 inteiros

for ( int x=0; x<10; x++)

crie uma variavel para fazer uma copia do numero anterior , e coloque um if dentro dele para verificar se o numero é consecutivo, algo como

if ( numero == copiadonumero +1)

crie uma variavel pra somar os numeros para ser calculada a media depois.

variavel=variavel+numero ou variavel+=numero

O resto é bem obvio , so criar if e else pra determinar o maior e o menor entre eles,

Boa sorte ai amigo!

Postado

Pros consecutivos, você vai fazendo uma comparação dois a dois dos números, subtraindo um número do outro, vai ser consecutivo se o resultado for 1 ou -1.

Pra saber o número maior e o menor, voce declarar dois inteiros 'min' e 'max'. Você vai percorrer todos os números...a cada iteraçao voce compara se o numero é maior que o 'max' ou menor que o 'min', se for maior, esse número vira o novo 'max'. Se for menor, vira o novo 'min'.

A soma é óbvia. Só tome cuidado com a média, que não obrigatoriamente será inteiro quando você for dividir por 10.

*EDIT:

Eu tinha entendido que recebe os 10 números, checa se tem consecutivos, acha o maior e o menor desses 10, a soma e a media.

Mas vendo a solução do Hzsiul e lendo melhor a pergunta, pelo seu português (sem vírgulas e não muito explicado) não dá pra entender bem o que você quer.

O maior, menor, soma e média, são de todos os 10 números ou dos consecutivos que for achando?

Postado

*EDIT:

Eu tinha entendido que recebe os 10 números, checa se tem consecutivos, acha o maior e o menor desses 10, a soma e a media.

Mas vendo a solução do Hzsiul e lendo melhor a pergunta, pelo seu português (sem vírgulas e não muito explicado) não dá pra entender bem o que você quer.

O maior, menor, soma e média, são de todos os 10 números ou dos consecutivos que for achando?

Tambem tinha entendido desse jeito mas ai eu li mais umas vezes pra entender o portugol rsrs acho que ele quis dizer o seguinte: caso o usuario digite um numero consecutivo o programa para a execução do laço, e fecha.. mas acho melhor colocar uma mensagem: Proibido numeros consecutivos por favor tente novamente... e redirecionar para a funçao main novamente.

Postado

Verdade, faz sentido.

Então é mais simples...só basta checar o número atual da iteração com uma variável que armazena o número anterior, e comparar esses dois.

Postado

Desculpe pelo português, não pode ter números consecutivo, se digitarem dois números consecutivo e pra sair do laço e do programa.É e pra somar, tirar a media, o numero maior,é o menor dos dez números digitados

Postado

Obrigados a todos, Desculpe pela demora em responder , e porque estava sem net...

eu não consigo fazer entrar no if


#include <stdio.h>
#include <stdlib.h>

int main()
{
int vetor[10];
int an, su;
for ( int x=0; x<10; x++){
printf("Digite um numero\n");
scanf("%d", &vetor[x]);
an = vetor[x];
if(su == an + 1){
printf("Erro\n");
system("pause");
break;
}
}
system("pause");
}

ajuda ae pf...

Postado

nunca ira entra no if porque quem é su? ele não recebe nenhum valor.

uma dica mais simples


for(int i=0;i<10;i++)
{
digite um numero
scanf(%d",&vetor[i]);
if(i>0) {anterior = vetor[i-1];} // verifica se nao é a primeira posição. Pois se for, nao existe um anterior da primeira.
atual = vetor[i]
if (atual - anterior == 1) // ou if(vetor[i-1] - vetor[i] == 1) dai nesse caso nao precisa das 2 variaveis
{
estão na sequencia
}

Postado

Obrigado a todos pela ajuda aqui esta o programa pronto...

Me deem sua opinião.


#include <stdio.h>
#include <stdlib.h>

int main(){
int vetor[10];
int an, atual,soma=0,maior=-1000,menor=9999;
float m,x=1;
int sair, opcao, i;
sair = 1;

while (opcao != 5)
{
printf ("\t\t\t\tEscolha uma da opções abaixo\n\n");
printf ("\t\t\t\t1 - Digitar Numeros \n""\t\t\t\t2 - Soma dos numeros \n""\t\t\t\t3 - Media dos numeros\n""\t\t\t\t4 - Maior e menor numero \n""\t\t\t\t5 - SAIR \n");
scanf ("%d",&opcao);
system("cls");

switch (opcao){
case 1:
{
soma = 0;
for(i=0;i<10;i++)
{
printf("Digite um numero\n");

scanf("%d",&vetor[i]);
soma+=vetor[i];

if(i>=0) {

an = vetor[i-1];

}

atual = vetor[i];

if (atual > an){
maior = atual;
}
if (atual < an){
menor = atual;
}

if (atual - an == 1){

printf("Erro\n");

x = x + 1;
m = soma / x;
break;
}




}


system("pause");
system("cls");


break;



}
case 2:{
printf("A soma de: %d\n", soma);
system("pause");
system("cls");

break;
}
case 3:{


printf("A media e: %.1f\n", m);
system("pause");
system("cls");

break;
}
case 4:{
printf("O maior numero e: %d\n",maior);
printf("O menor numero e: %d\n",menor);
system("pause");
system("cls");

break;
}



system("pause");

}
}
}

Postado

um pequeno errinho.


if(i>=0) {

an = vetor[i-1];

}

se ele for 0 ja começa recebendo o valor no vetor na posição -1,

então o correto seria


if(i>0)

o código como esta funciona certinho, mas a nivel de programação o mais correto seria isso:



if(i == 0)
{
an = vetor[i];
}

if( i > 0)
{
an = vetor[i];
}

mesmo assim como esta ele funciona.

mas experimente botar um prinf nesse if.

voce vera que se eu for digitar o vetor[0]. o anterior recebera um numero "nada a ver" com os digitados.

Postado
um pequeno errinho.


if(i>=0) {

an = vetor[i-1];

}

se ele for 0 ja começa recebendo o valor no vetor na posição -1,

então o correto seria


if(i>0)

o código como esta funciona certinho, mas a nivel de programação o mais correto seria isso:



if(i == 0)
{
an = vetor[i];
}

if( i > 0)
{
an = vetor[i];
}

mesmo assim como esta ele funciona.

mas experimente botar um prinf nesse if.

voce vera que se eu for digitar o vetor[0]. o anterior recebera um numero "nada a ver" com os digitados.

Valeu, vou levar isso em conta...

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...