migg Posted March 7, 2009 at 10:17 PM Report Share #249029 Posted March 7, 2009 at 10:17 PM Segundo isto Código Significado \b Retrocesso ("back") \f Alimentação de formulário ("form feed") \n Nova linha ("new line") \t Tabulação horizontal ("tab") \" Aspas \' Apóstrofo \0 Nulo (0 em decimal) \\ Barra invertida \v Tabulação vertical \a Sinal sonoro ("beep") \N Constante octal (N é o valor da constante) \xN Constante hexadecimal (N é o valor da constante) \b serve para retorcer ou seja voltar a trás eu gostava de saber como usa-lo eu escrevo por exemplo: #include <stdlib.h> #include <stdio.h> int main () { printf(" Clique 1 para fazer a media dos teste___________________"); printf(" Clique 2 para ver a data dos testes________________________\b"); system("Pause"); return(0); } Isto devia recuar de que modo? não entendo muito bem como usa-lo Link to comment Share on other sites More sharing options...
Ferreira Posted March 7, 2009 at 10:47 PM Report Share #249034 Posted March 7, 2009 at 10:47 PM Apaga o último carácter (no teu caso um '_'). http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
pakito87 Posted March 8, 2009 at 12:00 PM Report Share #249087 Posted March 8, 2009 at 12:00 PM o \b não recua cm tu pensas, se não tou em erro tu julgas que ele volta um passo a traz, com td como disse o Ferreira só apaga o ultimo caracter; Link to comment Share on other sites More sharing options...
migg Posted March 8, 2009 at 01:11 PM Author Report Share #249097 Posted March 8, 2009 at 01:11 PM ok,obrigado alguem me pode explicar então como voltar para trás num programa? Link to comment Share on other sites More sharing options...
Ferreira Posted March 8, 2009 at 01:13 PM Report Share #249098 Posted March 8, 2009 at 01:13 PM O que queres dizer com "voltar atrás"? http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
migg Posted March 8, 2009 at 01:21 PM Author Report Share #249100 Posted March 8, 2009 at 01:21 PM por exemplo neste codigo que eu ando a trabalhar: #include <stdlib.h> #include <stdio.h> int main() { int opc, numtest, opcdois, ld, lm, md, mm, fd, fm, id, im, hd, hm, gd, gm, ed, em, cd, cm, mod, mom; float media, a, b, c, d; do { printf(" Clique 1 para fazer a media dos teste___________________nnn"); printf("n Clique 2 para ver a data dos testes________________________n"); scanf("%d", &opc); } while ((opc < 1) || (opc > 2)); switch (opc) { case 1: printf("nnQuantos testes tives-te?nn"); printf("1nn"); printf("2nn"); printf("3nn"); printf("4nn"); scanf("%d", &numtest); if (numtest == 1) { printf("Insira a nota dos testes nn"); scanf("%f", &a); media = a / 1; printf("tnA media e de:%f", media); } if (numtest == 2) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); media = (a + b) / 2; printf("tnA media e de:%f ", media); } if (numtest == 3) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); scanf("%f", &c); media = (a + b + c) / 3; printf("tnA media e de:%f ", media); } if (numtest == 4) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); scanf("%f", &c); scanf("%f", &d); media = (a + b + c + d) / 4; printf("tnA media e de:%f ", media); } break; case 2: do { printf("------Inserir data de um teste-----1nn"); printf("------Ver a tabela de testes-----2nn"); scanf("%d", &opcdois); } while ((opcdois < 1) || (opcdois > 2)); switch (opcdois) { case 1: printf("nnnLingua Portuguesa nn"); scanf(" %d", &ld); scanf(" %d", &lm); printf("Matematica nn"); scanf(" %d", &md); scanf(" %d", &mm); printf("Moral nn"); scanf(" %d", &mod); scanf(" %d", &mom); printf("Fisico quimica nn"); scanf(" %d", &fd); scanf(" %d", &fm); printf("Ciencias Naturais nn"); scanf(" %d", &cd); scanf(" %d", &cm); printf("Educacao Fisica nn"); scanf(" %d", &ed); scanf(" %d", &em); printf("Geografia nn"); scanf(" %d", &gd); scanf(" %d", &gm); printf("Historia nn"); scanf(" %d", &hd); scanf(" %d", &hm); printf("Ingles nn"); scanf(" %d", &id); scanf(" %d", &im); printf("Frances nn"); scanf(" %d", &fd); scanf(" %d", &fm); printf(" ________________________Dia___|____Mes_______________________________"); printf("nnnLingua Portuguesa | %d | %d nn", ld, lm); printf("Matematica | %d | %d nn", md, mm); printf("Moral | %d | %d nn", mod, mom); printf("Fisico quimica | %d | %d nn", fd, fm); printf("Ciencias Naturais | %d | %d nn", cd, cm); printf("Educacao Fisica | %d | %d nn", ed, em); printf("Geografia | %d | %d nn", gd, gm); printf("Historia | %d | %d nn", hd, hm); printf("Ingles | %d | %d nn", id, im); printf("Frances | %d | %d nn", fd, fm); printf(""); break; case 2: printf("nnn ________________________Dia___|____Mes_______________________________"); printf("nnnLingua Portuguesa %d %d nn", ld, lm); printf("Matematica %d %d nn", md, mm); printf("Moral %d %d nn", mod, mom); printf("Fisico quimica %d %d nn", fd, fm); printf("Ciencias Naturais %d %d nn", cd, cm); printf("Educacao Fisica %d %d nn", ed, em); printf("Geografia %d %d nn", gd, gm); printf("Historia %d %d nn", hd, hm); printf("Ingles %d %d nn", id, im); printf("Frances %d %d nn", fd, fm); printf(" ____________________________________________________________nn"); break; } } system("Pause"); return (0); } eu selecciono uma opção faço essa opção e quero depois voltar para o inicio do programa como faço isso Link to comment Share on other sites More sharing options...
Ferreira Posted March 8, 2009 at 01:23 PM Report Share #249102 Posted March 8, 2009 at 01:23 PM Precisas de usar um ciclo. http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
migg Posted March 8, 2009 at 01:29 PM Author Report Share #249105 Posted March 8, 2009 at 01:29 PM já percebi eu ando a estudar por uma apostila e lembreime como se faz temos de usar um ciclo e o comando goto certo? Link to comment Share on other sites More sharing options...
JD557 Posted March 8, 2009 at 01:37 PM Report Share #249107 Posted March 8, 2009 at 01:37 PM Bem, antes de mais, o comando goto não costuma ser uma boa ideia, porque depois ficas com o código todo desorganizado e quando há um bug é tramado de corrigir. O mais correcto é usares loops do género "while", "do... while" ou "for". Já agora, em vez de essa trapalhada toda para fazer a média, podias usar um loop como um somatório. 🙂 Exº: int numtestes; //Total de testes int notas[6]; // Notas dos testes (Até 6 testes) //INPUT scanf("%d", &numtestes); // Recebe o número de testes for (int n=0;n<numtestes && n<6;n++) { // Para n=0, enquanto n for menor que o numero de testes, n vai aumentando de 1 em 1 scanf("%d", ¬as[n]); // Recebe o valor das notas } // Calculo int total; // Soma das notas dos testes for (int n=0;n<numtestes && n<6;n++) { total+=notas[n]; } int media=total/numtestes; Visto que não estou habituado a trabalhar em C e não testei o código, isto pode ter uns erros, mas o que interessa é que tenhas uma ideia de como usar loops e de como podes simplificar o código. P.S: Já agora "tives-te" não existe, escreve-se "tiveste" 😄 MIEIC @ FEUP http://project557.blogspot.com/ --- Development Blog Proteja a sua pen: http://lastknight.pt.vu Link to comment Share on other sites More sharing options...
migg Posted March 8, 2009 at 01:40 PM Author Report Share #249108 Posted March 8, 2009 at 01:40 PM eu faço assim por exemplo está certo? #include <stdio.h> int main() { int opcao; while (opcao != 5) { REFAZ: printf("\n\n Escolha uma opcao entre 1 e 5: "); scanf("%d", &opcao); if ((opcao > 5)||(opcao <1)) goto REFAZ; /* Opcao invalida: volta ao rotulo REFAZ */ switch (opcao) { case 1: printf("\n --> Primeira opcao.."); break; case 2: printf("\n --> Segunda opcao.."); break; case 3: printf("\n --> Terceira opcao.."); break; case 4: printf("\n --> Quarta opção.."); break; case 5: printf("\n --> Abandonando.."); break; } } return(0); } Link to comment Share on other sites More sharing options...
Ferreira Posted March 8, 2009 at 01:44 PM Report Share #249112 Posted March 8, 2009 at 01:44 PM Faz antes assim: do { printf("\n\n Escolha uma opcao entre 1 e 5: "); scanf("%d", &opcao); } while((opcao > 5)||(opcao <1)) http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
TheDark Posted March 8, 2009 at 01:49 PM Report Share #249115 Posted March 8, 2009 at 01:49 PM Teres o if com goto ou não teres, em termos práticos, no teu código, é a mesma coisa. Em termos teóricos, utilizar goto em C é um erro grave, porque quebra o fluxo (obrigado pedrosorio 😄 ) do programa e é mais uma fonte de problemas do que de soluções. Além de que, até hoje, nunca vi uma situação em que não fosse possível substituir a funcionalidade do goto por outra construção qualquer. No caso do teu código, como já disse, o goto não faz lá rigorosamente nada. Desaparecido. Link to comment Share on other sites More sharing options...
pedrosorio Posted March 8, 2009 at 01:53 PM Report Share #249116 Posted March 8, 2009 at 01:53 PM Em termos teóricos, utilizar goto em C é um erro grave, porque quebra o flow (não consegui traduzir 😄 ) fluxo 🙂 Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
migg Posted March 8, 2009 at 01:54 PM Author Report Share #249117 Posted March 8, 2009 at 01:54 PM eu sei mas aquilo era um exemplo já meti a opção para retorcer no código que postei anteriormente e gostava que me dissessem como voltar para a opção de inicio se usar o comando goto? #include <stdlib.h> #include <stdio.h> int main() { int opc, numtest, opcdois, ld, lm, md, mm, fd, fm, id, im, hd, hm, gd, gm, ed, em, cd, cm, mod, mom, retro; float media, a, b, c, d; do { REFAZ: printf("nnn Clique 1 para fazer a media dos teste___________________nnn"); printf("n Clique 2 para ver a data dos testes________________________n"); scanf("%d", &opc); } while ((opc < 1) || (opc > 2)); switch (opc) { case 1: printf("nnQuantos testes tives-te?nn"); printf("1nn"); printf("2nn"); printf("3nn"); printf("4nn"); scanf("%d", &numtest); if (numtest == 1) { printf("Insira a nota dos testes nn"); scanf("%f", &a); media = a / 1; printf("tnA media e de:%f", media); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; } if (numtest == 2) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); media = (a + b) / 2; printf("tnA media e de:%f ", media); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; } if (numtest == 3) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); scanf("%f", &c); media = (a + b + c) / 3; printf("tnA media e de:%f ", media); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; } if (numtest == 4) { printf("Insira a nota dos testes nn"); scanf("%f", &a); scanf("%f", &b); scanf("%f", &c); scanf("%f", &d); media = (a + b + c + d) / 4; printf("tnA media e de:%f ", media); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; } break; case 2: do { printf("------Inserir data de um teste-----1nn"); printf("------Ver a tabela de testes-----2nn"); scanf("%d", &opcdois); } while ((opcdois < 1) || (opcdois > 2)); switch (opcdois) { case 1: printf("nnnLingua Portuguesa nn"); scanf(" %d", &ld); scanf(" %d", &lm); printf("Matematica nn"); scanf(" %d", &md); scanf(" %d", &mm); printf("Moral nn"); scanf(" %d", &mod); scanf(" %d", &mom); printf("Fisico quimica nn"); scanf(" %d", &fd); scanf(" %d", &fm); printf("Ciencias Naturais nn"); scanf(" %d", &cd); scanf(" %d", &cm); printf("Educacao Fisica nn"); scanf(" %d", &ed); scanf(" %d", &em); printf("Geografia nn"); scanf(" %d", &gd); scanf(" %d", &gm); printf("Historia nn"); scanf(" %d", &hd); scanf(" %d", &hm); printf("Ingles nn"); scanf(" %d", &id); scanf(" %d", &im); printf("Frances nn"); scanf(" %d", &fd); scanf(" %d", &fm); printf(" ________________________Dia___|____Mes_______________________________"); printf("nnnLingua Portuguesa | %d | %d nn", ld, lm); printf("Matematica | %d | %d nn", md, mm); printf("Moral | %d | %d nn", mod, mom); printf("Fisico quimica | %d | %d nn", fd, fm); printf("Ciencias Naturais | %d | %d nn", cd, cm); printf("Educacao Fisica | %d | %d nn", ed, em); printf("Geografia | %d | %d nn", gd, gm); printf("Historia | %d | %d nn", hd, hm); printf("Ingles | %d | %d nn", id, im); printf("Frances | %d | %d nn", fd, fm); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; break; case 2: printf("nnn ________________________Dia___|____Mes_______________________________"); printf("nnnLingua Portuguesa %d %d nn", ld, lm); printf("Matematica %d %d nn", md, mm); printf("Moral %d %d nn", mod, mom); printf("Fisico quimica %d %d nn", fd, fm); printf("Ciencias Naturais %d %d nn", cd, cm); printf("Educacao Fisica %d %d nn", ed, em); printf("Geografia %d %d nn", gd, gm); printf("Historia %d %d nn", hd, hm); printf("Ingles %d %d nn", id, im); printf("Frances %d %d nn", fd, fm); printf(" ____________________________________________________________nn"); printf("nnPara voltar para o inicio do programa precione 1nn"); scanf("%d", &retro); while (retro == 1) goto REFAZ; break; } } system("Pause"); return (0); } 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