• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nao

duvida no codigo c da wiki do portugal a programar

11 mensagens neste tópico

boas estava a tentar testar o codigo c q esta disponivel na wiki do pportugal a programar

e da-me um era a compilar

TrbPi/teste11.c:103: error: redefinition of ‘main’
TrbPi/teste11.c:45: error: previous definition of ‘main’ was here

linha 45 (e restante codigo)

int main(){
    int numero;
    char texto[MAX], cifrado[MAX];
    printf("Introduza a palavra a cifrar: ");
    scanf("%s", texto);
    do{
       printf("Introduza o número de casas: "); 
       scanf("%d", &numero);
    } while (numero > 26 || numero < 1);
    encrypt(numero,texto,cifrado);
    printf("%s", cifrado);
}

linha 104 (e restante codigo)

 
int main(){
    int numero;
    char texto[MAX], cifrado[MAX];
    printf("Introduza a palavra cifrada: ");
    scanf("%s", cifrado);
    do{
       printf("Introduza o número de casas: "); 
       scanf("%d", &numero);
    } while (numero > 26 || numero < 1);
    decrypt(numero,cifrado,texto);
    printf("%s", texto);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é o que diz na mensagem de erro. Estás a definir a função mais duas vezes algures. Se testares uma função com o nome main, não podes ter nenhuma outra main no mesmo programa.

Quando for assm afixa tabem um link para a página do wiki em questão para podermos corrigir caso haja algum erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao, estás a copiar colar o código cegamente sem saber o que estás a fazer. Se não perceberes o que estás na verdade a fazer estes erros nunca vão deixar de aparecer a toda a hora.

O que tens a fazer é aproveitar apenas o código que te interessa. Nomeadamente as funções de cifragem e decifragem, na função mais podes por  o que tu quiseres fazer com cada uma delas.

Ao menos leste o código? Se não leste, lê-o. Se não perceberes alguma coisa no código pergunta aqui no fórum. Se o código fôr chinês para ti, então lê o artigo "bases de programação em C" tambem disponível no wiki.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem desde ja obrigado pela resposta

eu sei o q o codigo faz mais ou menos consegui interpretalo mais ou menos, este artigo "bases de programação em C" tambem ja li mas acho q vou ler com mais atençao

o q eu queria mesmo era por esse codigo a funcionar pra depois poder mexer nele, o problema e q como ele esta nao consigo por a funcionar tambem ja mechi nele e nada..

como ele esta em windows, compila mas quando vou pra cifrar ponho o numero de casas dou enter e fecha o programa, pra decifrar igual

no ubuntu, n compila lol.. dou o comando no terminal e nada..

cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acabei de testar aqui no meu computador (ubuntu) e funciona, dá warnings e tal mas funciona:

p@p-laptop:~/Desktop$ gcc cifra.c 
cifra.c: In function ‘main’:
cifra.c:34: warning: incompatible implicit declaration of built-in function ‘printf’
cifra.c:35: warning: incompatible implicit declaration of built-in function ‘scanf’
p@p-laptop:~/Desktop$ ./a.out 
Introduza a palavra a cifrar: Pedro
Introduza o número de casas: 5
Ujiwtp@p-laptop:~/Desktop$ 

Pelo que dizes isso no teu windows tambem deve estar a funcionar, só que a janela fecha quando a aplicação termina.

Coloca um getch(); no final, assim a aplicação faz uma pausa até premires uma tecla qualquer, e só depois termina.

Ou então corre a aplicação na linha de comandos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E como declaras-te o main como int, um return 0; não fazia mal nenhum :)

e se abre e fecha rapidamente, metes a biblio stdlib.h e pões um system("pause"); no fim ou o getch(); como já foi dito...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e se abre e fecha rapidamente, metes a biblio stdlib.h e pões um system("pause");

Atenção que neste caso não funciona em Linux. É preferível o getch();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora