Pequeno exercicio em c

R

Remott

Guest
Boas ppl.
Venho aqui para pedir ajuda no seguinte: queria fazer um pequeno programa que leia a palavra digitada pelo utilizador, e que depois a escreva ao contrário. Pois bem, fiz uma coisa bem simples, que na minha opinião deveria dar, mas em vez disso escreve sem parar na tela a 1ª letra que o utilizador escreveu. O que eu tenho feito é o seguinte:

int main()
{
int i,num,contador=0;
char string[100];
printf("Escreva uma palavra: ");
gets(string);
for (i=0;string!='\0';i++) contador+=1;
contador-=1;
for(num=0;num=contador;num++) printf ("%c",string[contador-num]);
system("PAUSE");
return 0;
}


Cumprimentos
 
Tenta isto e ve se percebes....

#include <stdio.h>

main()
{

char string[100];
int i=0,j;

printf("\nIntroduza uma palavra\n");
gets(string);

/*Esta linha e para a contagem de caracteres, mas podes ultrapassar isto
facilmente utilizando o comando strlen*/
/* while (string!='\0')
i++;*/

i=strlen(string);


printf("\nRewind ==> ");

j=i;
while(j>=0)
{
printf("%c", string[j]);
j--;
}

exit(0);
}
 
lanço-te um outro desafio,
elabora um programa q retorne no standard output (ecra) a sua propria source.

escusado sera dizer q este programa deve funcionar sem qq input, ou seja n vais ler isso a ficheiro nenhum.

boas dores de cabeça, e garanto-te q sem pedires ajuda ou sem o veres ja feito vais levar mto tempo, mas qd acabares SABES "C"

:)
 
Até conseguir fazer isso vai demorar um bocado Andr0m3da :)
Decidi nestas férias começar a aprender C, porque interesso-me por programação, e então tirei ha 2 dias da net umas aulas sobre C, e tenho estado a ler e a praticar; e agora cheguei a este exercício q n estava a conseguir fazer, mas ja descobri onde estavam as minhas distracções.
Mesmo assim, obrigado pela ajuda, greven :)
E Andr0m3da, quando daqui a muito tempo conseguir fazer isso que tu propuseste, eu aviso-te :D

Cumprimentos
 
Boas, depois de pensar e pensar... vi k a solução estava memo a minha frente, pois transformando o source numa string pura de chars ia dar a uma pescadinha de rabo na boca, ate k se fez luz LOL :D a solução estava no chars e da sua converção para inteiros e vice versa...

#include <stdio.h>

int cod[]=
{35,105,110,99,108,117,100,101,32,60,115,116,100,105,111,
46,104,62,10,10,105,110,116,32,99,111,100,91,93,61,
10,10,118,111,105,100,32,109,111,115,116,114,97,95,97,
114,114,97,121,40,41,123,10,9,105,110,116,32,99,111,
110,116,97,59,10,9,112,114,105,110,116,102,40,34,123,
92,110,34,41,59,10,10,9,102,111,114,40,105,110,116,
32,97,61,48,59,97,60,52,48,53,59,97,43,43,41,
123,10,9,9,105,102,32,40,99,111,110,116,97,61,49,
53,41,123,10,9,9,9,112,114,105,110,116,102,40,34,
92,110,34,41,59,10,9,9,9,99,111,110,116,97,61,
48,59,10,9,9,125,10,9,9,105,102,40,97,61,61,
52,48,52,41,10,9,9,9,112,114,105,110,116,102,40,
34,37,100,34,44,99,111,100,91,97,93,41,59,10,9,
9,101,108,115,101,10,9,9,9,112,114,105,110,116,102,
40,34,37,100,44,34,44,99,111,100,91,97,93,41,59,
10,9,9,99,111,110,116,97,43,43,59,10,9,125,10,
10,9,112,114,105,110,116,102,40,34,125,59,92,110,34,
41,59,10,125,10,10,118,111,105,100,32,109,111,115,116,
114,97,95,99,111,100,40,41,123,10,9,102,111,114,40,
105,110,116,32,97,61,48,59,97,60,52,48,53,59,97,
43,43,41,123,9,9,10,9,9,112,114,105,110,116,102,
40,34,37,99,34,44,40,99,104,97,114,41,32,99,111,
100,91,97,93,41,59,10,9,9,105,102,32,40,97,61,
61,51,48,41,10,9,9,9,109,111,115,116,114,97,95,
97,114,114,97,121,40,41,59,10,9,125,10,125,10,10,
118,111,105,100,32,109,97,105,110,40,41,10,123,10,9,
109,111,115,116,114,97,95,99,111,100,40,41,59,10,125};

void mostra_array(){
int conta=0;
printf("\n{");

for(int a=0;a<405;a++){
if (conta==15){
printf("\n");
conta=0;
}
if(a==404)
printf("%d",cod[a]);
else
printf("%d,",cod[a]);
conta++;
}

printf("};\n");
}

void mostra_cod(){
for(int a=0;a<405;a++){
printf("%c",(char) cod[a]);
if (a==30)
mostra_array();
}
}

void main()
{
mostra_cod();
}
 
Boas, eu dupliquei a source mas transformei os caracteres em inteiros, no entanto nem todo o codigo pode ser duplicado pq se não era um ciclo infinito. o k fiz foi passar o codigo todo excepto o conteudo dentro do array para ascii depois mandei imprimir convertendo para char de novo mas no entanto pelo meio mandava imprimir os inteiros para mostrar o conteudo do array.

se existe alguma funcao de baixo nivel ou entao durante a compilação uma maneira de por o source pa dentro de uma string gostava de saber :).
mas no fim o k era pedido foi satisfeito.
Cumprimentos ymene.
 

Anexos

  • printsource.txt
    1,8 KB · Visualizações: 14
no fim o q é pedido n foi satisfeito...

e n te posso dar isso, pq tb ando as cabeçadas c ele...:)

quem mo propos levou 2 meses creio e eu gostava um dia....qualquer programar cm ele....


no meu caso muda a linguagem mas o problema mantem-se...
a minha suspeita é q faça quase um un-assembler...

mas é cm digo....procurei na net info uma vez, e encontrei...mas n cheguei a ler, tenciono fazer limpo, apenas isso, é das tais m€rdas por carolice, até pq a utilidade n é nenhuma....

e foi uma coisa q nunca me tinha passado pela cabeça fazer.
 
Back
Topo