DifusioN 0 Denunciar post Postado Abril 23, 2009 Fala Gente, seguinte... Tava eu aqui nas minhas horas vagas de vagabundo universitário e dai pensei em modificar um programinha de um livro... Dai eu modifiquei só que não está fazendo o que deveria fazer, tipo, parece que o Case não está modificando o valor de "mes"... Vejam vocês mesmo e tentem me falar o que está acontecendo... A...lembrando que o Dev está mostrando esse erro em cada linha dos cases: "28 [Warning] assignment makes integer from pointer without a cast " /* Página 50 exercicio 9 - Modificado Escreva um programa que solicite uma data e mostre como dd/mm/aaaa (Aqui é como o exercicio pedia) Modificado: A pessoa digita 15/11/1989 e aparece 15 de novembro de 1989. */ #include <stdio.h> #include <stdlib.h> #include "conio.h" int main() { int dd, mm, aaaa; char mes;//[80]; printf("Digite um dia: "); scanf("%d", &dd); printf("Digite o numero equivalente ao mes: "); scanf("%d", &mm); switch (mm) { case 1 : mes="JANEIRO"; break; case 2 : mes="FEVEREIRO"; break; case 3 : mes="MARCO"; break; case 4 : mes="ABRIL"; break; case 5 : mes="MAIO"; break; case 6 : mes="JUNHO"; break; case 7 : mes="JULHO"; break; case 8 : mes="AGOSTO"; break; case 9 : mes="SETEMBRO"; break; case 10 : mes="OUTUBRO"; break; case 11 : mes="NOVEMBRO"; break; case 12 : mes="DEZEMBRO"; break; default : printf("Mes invalido!!!"); } printf("Digite o ano: "); scanf("%d", &aaaa); printf("Data digitada: %d/ de %s de %d", dd, mes, aaaa); getch(); return 0; } Abraçoss....falowsss Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 23, 2009 mude somente aki e veja: char *mes;ow c for fazer char mes[80], use o strcpy ao invez do '=' []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 23, 2009 quitZAUMMM ele não pode declarar um ponteiro sem inicializar e alocar espaço para essa variável, pode? diffusion você não está lendo a data no formato "dd/mm/aaaa", pq você não usa um: scanf("%d/%d/%d", &dia, &mes, &ano); Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 23, 2009 bommmmmmmmmmmmm. HFDUASHFUAH.. geralmente eu faço essas 'pogs' (coisa feia neh =´[ ). de fazer tipo char *var, e naum alocar espaço... naum deveria .. + como eu sempre digo: "passo no compilador?? entaum beleza" HFJDUASHFUA zuera ;p e Victor acho q ele ta fazendo desse jeito pq ta seguindo uma apostila.. eu como disse faria um char mes[10]; e usaria o strcpy ;D []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 23, 2009 A questão é que eu não sei se é pog ou não.... pq por exemplo, se fizermos algo do tipo: char buff[20]; strcpy(buff, "minha_string"); O computador sabe que "minha_string" é um ponteiro para char. entendeu a minha dúvida? Depois eu pergunto la no orkut, a galera la deve saber. :P :P Se ele ta seguindo a apostila, então não está mais que quem falou... hahaahah http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
DifusioN 0 Denunciar post Postado Abril 23, 2009 Nossa Genteeee......valew pela força ai...nem pensei que teria respostas tão rápido...xD Bom, vamos lá: mude somente aki e veja: char *mes;ow c for fazer char mes[80], use o strcpy ao invez do '='[]s O que acontece ao fazer isso? de usar um ponteiro(ainda não tenho mta noção sobre ponteiro...mas ja li a respeito e deu um branco agora xD)......Sobre o strcpy, tipo, ele serve apenas para copiar uma string d um lugar e levar para outro...certo? Como eu fazeria nesse caso então?..fikei na duvida...tipo..xD..sei la.xD quitZAUMMM ele não pode declarar um ponteiro sem inicializar e alocar espaço para essa variável, pode? diffusion você não está lendo a data no formato "dd/mm/aaaa", pq você não usa um: scanf("%d/%d/%d", &dia, &mes, &ano); (é DifusioN xD....)...Não faz diferença...é apenas economia de linha...no meu caso estou fuçando qualquer coisa mesmo para aprender...xD Sobre a apostila... eu usei a apostila apenas para pegar a idéia, que era para a pessoa digitar os dados de uma data e mostrar eles normalmente na tela....sem nada de switch e tal....dai eu ke quis colocar isso de mudar o numero pela frase em meses e tal....xD...(fuçando e aprendendo xD).... Outra coisa.....o que quer dizer Pog? E tipo..... Eu ainda quero entender o porque de não estar funcionando o código anterior...mas eu inverti um pouco aki e fikou assim o código: int main() { int dd, mm, aaaa; char mes;//[80]; printf("Digite um dia: "); scanf("%d", &dd); printf("Digite o numero equivalente ao mes: "); scanf("%d", &mm); printf("Digite o ano: "); scanf("%d", &aaaa); switch (mm) { case 1 : printf("Data digitada: %d de Janeiro de %d", dd, aaaa); break; case 2 : printf("Data digitada: %d de Fevereiro de %d", dd, aaaa); break; case 3 : printf("Data digitada: %d de Marco de %d", dd, aaaa); break; case 4 : printf("Data digitada: %d de Abril de %d", dd, aaaa); break; case 5 : printf("Data digitada: %d de Maio de %d", dd, aaaa); break; case 6 : printf("Data digitada: %d de Junho de %d", dd, aaaa); break; case 7 : printf("Data digitada: %d de Julho de %d", dd, aaaa); break; case 8 : printf("Data digitada: %d de Agosto de %d", dd, aaaa); break; case 9 : printf("Data digitada: %d de Setembro de %d", dd, aaaa); break; case 10 : printf("Data digitada: %d de Outubro de %d", dd, aaaa); break; case 11 : printf("Data digitada: %d de Novembro de %d", dd, aaaa); break; case 12 : printf("Data digitada: %d de Dezembro de %d", dd, aaaa); break; default : printf("Mes invalido!!!"); } getch(); return 0; } Mtuuuu maiorrr em caracteres...mass......funciona do jeito que quero.... Então...me ajudem a arrumar o anterior......é só curiosidade mesmo...xD... Abraços e valew! Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Abril 23, 2009 Não está funcionando porque mes é apenas um char. Uma string é uma array de chars, logo você precisa de um ponteiro. Ou declarar mes como uma array (que é quase a mesma coisa): char mes[15]; Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 23, 2009 (é DifusioN xD....)Ahhh... ninguém mandou misturar letras maiusculas e minusculas... uahhuaeaehuaeh :P :P :P Outra coisa.....o que quer dizer Pog? aeuheahuaehaeuhuaehaue Pog é mais ou menos o que você fez para arrumar o seu problema. POG = Programação Orientada a Gambiarra É quando os programadores encontram maneiras erradas, mas que funcionam para resolver os seus problemas. O que você não está entendendo é o conceito de string. você ja programava em alguma linguagem antes? As strings em C são MUITO diferentes das strings em outras linguagens. C é uma lingaguem de relativo baixo nivel. Aconselho dar uma lida: http://pt.wikibooks.org/wiki/Programar_em_C/Strings http://br.geocities.com/sdiasneto/c_int/strings.htm http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif -------------------------------------- EDIT: O strcpy: é uma função que faz o mesmo papel que o operador ':=' em Pascal. por exemplo: //pascal var minhaString: String; begin minhaString = "looooool"; end //em C char minhaString[20]; strcpy(minhastring, "loooooool"); //ou... char minhaOutraString[20]; strcpy(minhaOutraString, minhaString); Compartilhar este post Link para o post Compartilhar em outros sites
DifusioN 0 Denunciar post Postado Abril 24, 2009 A ta..eu tinha tentado utilizar aqui o char sendo declarado como char mes[80] mas não lembro...mas sei que deu outro erro tbm...UAuha....por isso ele até ta como //[80]....pq tbm tinha utilizado assim e tinha dado outro erro.... Sobre o Pog....UAHuhaU....putzz...adorei...xD...dei mta risada aki..... Sobre as strings....tipo....eu não programo ainda em outras linguagens(posso dizer que ja programo em C++, em Java..isso e aquilo, ke é tudo a mesma coisa pelo que ja vi...UAHuh)......mas pelo que sei string é um Vetor de chars!....certo?..... Sobre o strcpy, agora entendi...é que no exemplo que eu tinha visto só estava como strcpy (outra string, nova string), algo assim .,......e não tinha visto nenhum com a declaração de variavel antes e depois o arquivo.........(ops...arquivo nada...putz sono da poha....e ainda vou ter ke acordar 4 da madruga pra ir para a facul....xD)...*a string... UAHUHA Abraços ai gente....vou tentar fazer utilizando o strcpy depois e posto aki o resultado...agora vou dormir...pq to quase babando aki..xD Valew e falows..... Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 24, 2009 nossa c ainda eram 22:40 e você estava babando FHUDSHAU.. da proxima vz vo fazer uma facu q acaba + cedo ;D Compartilhar este post Link para o post Compartilhar em outros sites