Ir ao conteúdo
  • Cadastre-se

C Programa em linguagem C


Ir à solução Resolvido por De Los Santos,

Posts recomendados

Boa tarde, eu tenho uma dúvida num programa em C com o seguinte enunciado:

Permitir ao utilizador digitar n números inteiros, terminando ao digitar um número menor ou igual a zero.

Depois apresenta a soma de todos os números pares digitados. Para a realização de cálculos, apenas são considerados os números de 1 a 50, ambos inclusive.

 

O meu código é o seguinte:

#include<stdio.h>
#include<stdlib.h>
main()
{
int n, soma_par=0;
do {
printf("Indique um numero inteiro: \n");
scanf(" %d",&n);
if (n<1 && n>50) {
    printf("Digitou um numero invalido\n");}
else (n%2==0);{
soma_par= soma_par + n;}
}
while (n>0);
printf("A soma de todos os numeros pares digitados e = %d \n",soma_par);
system("pause");
}

O meu código em vez de parar de aceitar valores quando se coloca valores superiores a 50 continua, ignorando a condição.

Agradeço a ajuda.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, De Los Santos disse:

O erro está nesta linha:

 



if (n<1 && n>50)

 

Para que o script pare de aceitar valores maiores que 50, você tem que substituir o "e" pelo "ou", assim:

 



if (n<1 || n>50)

 

Já alterei mas agora não executa a soma só dos pares mas sim dos números todos, ou seja, soma tudo.

Não está a ler a condição (n%2 ==0).

#include<stdio.h>
#include<stdlib.h>
main()
{
int n, soma_par=0;
do {
printf("Indique um numero inteiro: \n");
scanf(" %d",&n);
if (n<1 || n>50) {
    printf("Digitou um numero invalido \n");
    break;}
else (n%2 ==0);{
soma_par += n; // soma_par = soma_par + n
}
}
while (n>0);
printf("A soma de todos os numeros pares digitados e = %d \n",soma_par);
system("pause");
}

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, De Los Santos disse:

Tenta o seguinte. Muda a linha:

 



else (n%2 ==0);{

 

Por:

 



else if(n%2 ==0){

 

Já deu, o problema era o ponto e vírgula antes da chaveta, não deixava ler a condição.

Obrigado!

Só por curiosidade, se eu quisesse efectuar a soma dos pares existentes numa matriz, podia usar o mesmo código?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

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...