fpinto Posted November 28, 2007 at 05:22 PM Report Share #150967 Posted November 28, 2007 at 05:22 PM boas, no código #include <stdio.h> #include <stdlib.h> int main() { int a; printf("intruduza o caracter/sting que quer repetir muito"); puts(""); scanf(" %d",&a); puts(""); for( ; ; ) printf("%d",&a); system("PAUSE"); return 0; } eu ao compilar e se eu escolher letras ou mesmo números o resultado e sempre o mesmo. 14... isso e o tamanho da variável não é? como resolvo? cumps fpinto Link to comment Share on other sites More sharing options...
Triton Posted November 28, 2007 at 05:30 PM Report Share #150971 Posted November 28, 2007 at 05:30 PM printf("%d",&a); Estás a imprimir o endereço da variável. Além disso, se queres lidar com caracteres ou strings tens de usar o tipo char e char*, respectivamente. <3 life Link to comment Share on other sites More sharing options...
fpinto Posted November 28, 2007 at 05:32 PM Author Report Share #150972 Posted November 28, 2007 at 05:32 PM como faço então para por o valor da variavel? Link to comment Share on other sites More sharing options...
Triton Posted November 28, 2007 at 05:34 PM Report Share #150973 Posted November 28, 2007 at 05:34 PM como faço então para por o valor da variavel? #include <stdio.h> int main() { int a; printf("introduza o número que quer repetir muito: "); scanf("%d",&a); for(; printf("%d\n",a); system("PAUSE"); return 0; } Agora tenta fazer para strings. <3 life Link to comment Share on other sites More sharing options...
fpinto Posted November 28, 2007 at 05:38 PM Author Report Share #150976 Posted November 28, 2007 at 05:38 PM ha ok. bgd. e que já não faço disto e muito e já não me lembro Link to comment Share on other sites More sharing options...
fpinto Posted November 28, 2007 at 05:47 PM Author Report Share #150981 Posted November 28, 2007 at 05:47 PM ja agora. no mesmo codigo mas mais desemvolvido #include <stdio.h> #include <stdlib.h> int main() { char a,b,c; printf("Bem vindo ao programa de efeitos de letras\n\n por favor escolha uma das seguintes opcoes"); puts("\n\n"); puts("1 para efeitos predefenidos.\n2 para criar novo efeitoa\n"); scanf("%c",&b); switch (b) { case 1: printf ("que efeito deseja entre: 1 binario \n2 octal\n3 simbolos matematicos"); scanf("%c",&c); switch (c) { case 1: for ( ; ; ) printf("010101010010010101101111001001111110100101010101101001"); break; case 2: for ( ; ; ) printf("4753809m7538674367m43643643v24353463456x43643h9862x43f534g7543b6"); break; case 3: for ( ; ; ) printf("/*-+&%!#$%&()//"); break; default: printf("isso nao existe... o programa vaise auto encerrar"); puts("\n\n\n\n"); system("PAUSE"); return 0; } case 2: printf("intruduza o caracter/sting que quer repetir muito"); puts(""); scanf("%c",&a); puts(""); for( ; ; ) printf("%c",a); break; default: printf("isso nao existe. o programa vaise auto encerar"); puts("\n\n\n\n"); system("PAUSE"); return 0; } system("PAUSE"); return 0; } o resultado e sempre o mesmo. pergunta os printf iniciais e quer responda 1 ou 2 ele atica o default. porque? como resolvo? Link to comment Share on other sites More sharing options...
Triton Posted November 28, 2007 at 06:17 PM Report Share #150992 Posted November 28, 2007 at 06:17 PM O problema está no case, estás a comparar o código ASCII do caracter. O código ASCII do número 1 não correspondo a 1, mas sim a '1'. Para resolver basta mudares todas as comparações do switch para 'valor' (entre plicas). E cuidado nesta linha printf("/*-+&%!#$%&()//"), para obteres o caracter % tens de escrever %% na string do scanf. <3 life Link to comment Share on other sites More sharing options...
fpinto Posted November 28, 2007 at 06:19 PM Author Report Share #150993 Posted November 28, 2007 at 06:19 PM o que este triton sabe e ilimitado 😞 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