pedrosimoes Posted October 26, 2009 at 06:22 PM Report Share #293442 Posted October 26, 2009 at 06:22 PM 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 More sharing options...
Ferreira Posted October 26, 2009 at 07:55 PM Report Share #293461 Posted October 26, 2009 at 07:55 PM Esse while não tem corpo, i.e., só tem uma instrução vazia (esse ;). Além disso, podes optimizar esse for para ter incrementos de 2. http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
pedrosimoes Posted October 26, 2009 at 08:11 PM Author Report Share #293464 Posted October 26, 2009 at 08:11 PM Se não te importares explica como deveria de alterar o código de modo a funcionar em condiçoes?! Obrigado Link to comment Share on other sites More sharing options...
heldercorreia Posted October 26, 2009 at 09:49 PM Report Share #293473 Posted October 26, 2009 at 09:49 PM while(ni>=nf){ printf("\nO primeiro numero inserido em primeiro lugar tem de ser inferior ao segundo!"); ni<nf;} Se o meu C não me falha.. Faltavam-te as chavetas Link to comment Share on other sites More sharing options...
heeven Posted October 26, 2009 at 09:55 PM Report Share #293474 Posted October 26, 2009 at 09:55 PM 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 More sharing options...
Localhost Posted October 28, 2009 at 11:15 AM Report Share #293685 Posted October 28, 2009 at 11:15 AM 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 More sharing options...
Saco Posted October 29, 2009 at 01:11 AM Report Share #293805 Posted October 29, 2009 at 01:11 AM 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 More sharing options...
Localhost Posted October 29, 2009 at 10:50 AM Report Share #293829 Posted October 29, 2009 at 10:50 AM Sim, tens toda a razão, eu queria pôr um if em vez de um while, não gosto de while's neste tipo de soluções. Mas desculpa e obrigado pela chamada de atenção ? here since 2009 Link to comment Share on other sites More sharing options...
jarsantos Posted November 5, 2009 at 05:05 AM Report Share #294806 Posted November 5, 2009 at 05:05 AM 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 More sharing options...
Localhost Posted November 5, 2009 at 10:52 AM Report Share #294821 Posted November 5, 2009 at 10:52 AM Não é por nada mas acho que esta linha está mal: printf("%d\n",n); here since 2009 Link to comment Share on other sites More sharing options...
jarsantos Posted November 6, 2009 at 03:33 AM Report Share #294946 Posted November 6, 2009 at 03:33 AM sim a variável devia ser ni e nao n. Link to comment Share on other sites More sharing options...
bsntuga Posted November 8, 2009 at 11:56 AM Report Share #295122 Posted November 8, 2009 at 11:56 AM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now