Jump to content

Exercicio que dá cabo de mim!


pedrosimoes
 Share

Recommended Posts

Não é que não seja facil, o problema é que já ando a passar-me com o exercicio.

Aqui vai: "Elabore um programa que determine todos os números pares entre dois números inteiros ni e nf (ni<nf)."

O que eu fiz até agora foi:

#include <stdio.h>
#include <stdlib.h>
//Ficha3 - Exercicio2
void main ()

{
int ni,nf,n;
	n=ni;
	printf("Insira um numero inteiro : ");
	scanf("%d",∋);
	printf("\nInsira mais um numero maior que o anterior: ");
	scanf("%d",&nf);
	while(ni>=nf);
		printf("\nO primeiro numero inserido em primeiro lugar tem de ser inferior ao segundo!");
		ni<nf;

	for(ni=n;n<=nf;n++)
	{
		if(n%2==0)
			printf("%d\n",n);
	}
	system("pause");
}

Para ser directo, o que é que tá mal e o que é que falta aqui?

Obrigado, e btw, sou do primeiro ano! lol

Link to comment
Share on other sites

em C o ciclo while funciona assim

while(condição até parar)

{

  instruções a realizar;

  e no fim costuma-se por a iteracção

}

tu tens na condição do while(); <- erro de sintaxe

e depois dentro do ciclo só tens um output. Seja como for onde tens um while, precisas de um if, pois, tens de comparar os 2 números, e só continuas o programa se o 1º número for mais pequeno que o 2º.

o que ele quis dizer com o incremento de 2 em 2 números é que se o 1º número for par, podes andar no ciclo 2 números de cada vez, até chegares ao outro número.

PS: peço desculpa se o português parecer um pouco confuso.

Link to comment
Share on other sites

Só peguei no teu código e mudei algumas coisas:

#include <stdio.h>
#include <stdlib.h>
//Ficha3 - Exercicio2
int main ()

{
        int ni,nf,n;
                printf("Insira um numero inteiro : ");
                scanf("%d",∋);
                printf("\nInsira mais um numero maior que o anterior: ");
                scanf("%d",&nf);
                if(ni>=nf) printf("\nO primeiro numero inserido tem de ser inferior ao segundo!"); 
                for(n=ni;n<=nf;n++) //Aqui pus que o n é que recebia o ni, é a mesma coisa mas fica melhor de se perceber
                {
                        if(n%2==0)
                                printf("%d\n",n);
                }
                system("pause");
                return 0;
}

here since 2009

Link to comment
Share on other sites

Só peguei no teu código e mudei algumas coisas:

#include <stdio.h>
#include <stdlib.h>
//Ficha3 - Exercicio2
int main ()

{
        int ni,nf,n;
                printf("Insira um numero inteiro : ");
                scanf("%d",∋);
                printf("\nInsira mais um numero maior que o anterior: ");
                scanf("%d",&nf);
                while(ni>=nf) //Aqui tirei o ;
                        printf("\nO primeiro numero inserido em primeiro lugar tem de ser inferior ao segundo!");
                        //ni<nf; isto não é necessário
                
                for(n=ni;n<=nf;n++) //Aqui pus que o n é que recebia o ni, é a mesma coisa mas fica melhor de se perceber
                {
                        if(n%2==0)
                                printf("%d\n",n);
                }
                system("pause");
                return 0;
}

Assim dá um loop infinito de printfs caso entre no while já que ni e nf nunca vão ser alterados, logo a condição vai sempre manter-se!

Link to comment
Share on other sites

Sei que já não interessa mas tinham uma forma muito mais fácil e rápida de fazer esse programa

#include <stdio.h>
#include <stdlib.h>
//Ficha3 - Exercicio2
void main ()

{
        int ni,nf;
                printf("Insira um numero inteiro : ");
                scanf("%d",∋);
                printf("\nInsira mais um numero maior que o anterior: ");
                scanf("%d",&nf);
                while(ni>nf);
                        printf("\nO primeiro numero inserido em primeiro lugar tem de ser inferior ao segundo!");
               
                if(ni%2) ni++;
                

                for(;ni<=nf;ni=ni+2)
                {
                                printf("%d\n",n);
                }
                system("pause");
}
Link to comment
Share on other sites

Um Exercicio Simples.. Basta apenas comenta-lo bem, e preceber a logica da programaçao..

#include <stdio.h>
#include <conio.h>

// Pedir 2 Numeros, e imprimir os pares, entre os numeros

main()
{
      int ni=0,nf=0, i=0;
      // Pedir numero
      printf("Escreva um numero inteiro: ");
      scanf("%d", ∋);
      // Pedir outro numero maior que Decimal 'ni'
      printf("\nEscreva um numero inteiro maior que %d: ",ni);
      scanf("%d", &nf);
      // Validaçao - Numero NI>=NF
      while(ni>=nf)
      {
            printf("\nO Numero precisa de ser maior que %d", ni);
            printf("\nEscreva outro numero: ");
            scanf("%d",&nf);
      }
      // Recebido Numero Decimal 'Ni'
      // Imrimir Pares entre numeros
      for(i=ni;i<=nf;i++)
      {
                         if(i%2==0) 
                            printf("\n%d",i);
      }
      getch();
}
      
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.