|
![]() |
||
Linguagem de programação em C
|
||
. Nós temos 754.116 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) |
|
Membro Senior
|
Ola.. sou iniciante nessa linguagem...
baixei o compilador Dev-C++ estou seguindo a apotila do curso de "linguagem de programação C" da UFMG. To seguindo uns programas da apostila mais sempre quando vou atribuir uma especificação para a função do main o compilador naum roda. Ex.: #include<stdio.h> int prod (int x,int y) { return (x*y); } return main () { int saida; saida=prod (12,7); printf ("A saida e: %d\n",saida); } se eu tirar o return do main o programa ateh roda mais naum faz oque eu esperava.... quaria saber se eh por causa do compilador ou oq... favor... SE MANIFESTEM! VlW... ![]()
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#2 (permalink) |
|
Zumbi
Registrado em: Jan 2004
Mensagens: 5.276
Reputação: 189
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Amigo, tirando um pequeno detalhe, o seu programa está correto. Sugiro retornar a apostila do curso e verificar, com atenção, a forma de definição da função main.
Código:
__________________
------------------------------------------------ Muito bom. Mas tijolo não revida! ------------------------------------------------ |
|
|
|
|
|
#3 (permalink) |
|
Membro Senior
|
sim.. mais vei.. esse num eh o primeiro programa q da pau..
ja testei uns 3 e sempre quandu tiro esse void ele funciona... mas naum como imagino =/
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#4 (permalink) | |
|
Zumbi
Registrado em: Jan 2004
Mensagens: 5.276
Reputação: 189
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
__________________
------------------------------------------------ Muito bom. Mas tijolo não revida! ------------------------------------------------ |
|
|
|
|
|
|
#5 (permalink) |
|
Membro Senior
|
naum funcionou nem com void(outros programas) e dessa vez com return.. soh funciona o main sem nada. tipow.. sera q tem haver q meu compilador compilador naum eh um padrão ANSI???
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#6 (permalink) |
|
Membro Senior
|
pq a apostila pede um compilador padrão ANSI ;/
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#7 (permalink) |
|
Zumbi
|
Se a apostila pede um compilador padrão ANSI e usa void main(void) como exemplo, troque de apostila, pois ela mesmo se contradiz, uma vez que void main(void) não está no padrão ANSI.
Utilize a seguinte estrutura do main() para padronizar de acordo com o ANSI Código PHP:
Fergo |
|
|
|
|
|
#8 (permalink) |
|
Super Participante
|
int prod (int x,int y)
{ return (x*y); } int main () { int saida; saida=prod (12,7); A main é a função principal do programa, vc não poderá retornar ela como vc está fazendo. printf ("A saida e: %d\n",saida); }
__________________
ASUS A7N8X-X AMD Athlon XP 2800+ GeForce 6800 256/256 EXTREME 3 GB DDR 400 1 x HD Seagate 80GB 3 x HD Samsung 80GB 1 x HD Seagate 1,5TB Externo User Linux #448420 Fedora Core 12 Windows 7 Professional |
|
|
|
|
|
#9 (permalink) |
|
Zumbi
Registrado em: Jan 2004
Mensagens: 5.276
Reputação: 189
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Bom, amigo Eicar...esse, realmente, é um grande problema: "não funcionou" não quer dizer absolutamente nada...
__________________
------------------------------------------------ Muito bom. Mas tijolo não revida! ------------------------------------------------ |
|
|
|
|
|
#10 (permalink) | ||||
|
Super Participante
Registrado em: Apr 2005
Localização: São Gonçalo do Sapucaí - MG
Idade: 24
Mensagens: 554
Reputação: 16
![]() ![]() |
Citação:
Eicar: O que acontece é o seguinte: o seu programa está funcionando, mas o programa está fechando antes mesmo de dar tempo de você ver algum resultado. Esse é o padrão da linguagem C (pelo menos do devc++ eu sei que é). Para resolver faça o seguinte: 1- Conserte o seu código de forma que a função main fique como o Fergo disse: Citação:
Citação:
Citação:
![]() Somente lembrando que a linguagem C é "case sensitive", ou seja, diferencia letras maiúsculas de minúsculas.
__________________
Flávio. "Quem lê é", Revista Superinteressante. Graduado !!! Ciência da Computação - UninCor - Três Corações-MG. ![]() Rock n' Roll stop the traffic
Última edição por Flávio Borges : 17-08-2007 às 8:38. Motivo: Complementar resposta |
||||
|
|
|
|
|
#11 (permalink) | |
|
Zumbi
Registrado em: Jan 2004
Mensagens: 5.276
Reputação: 189
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Não, não ! Esse é o padrão do Windows. A janela do emulador do DOS se fechar após a execução do programa é uma característica do sistema operacional, não da linguagem C. Para evitar esse "incomodo", existe a saída clássica do system("PAUSE") ou do getch(), por exemplo. Mas são gambiarras . A saída mais elegante é abrir uma janela do emulador do DOS, caminhar até o diretório onde se encontra o executável e executá-lo na linha de comando.
__________________
------------------------------------------------ Muito bom. Mas tijolo não revida! ------------------------------------------------ |
|
|
|
|
|
|
#12 (permalink) | ||
|
Super Participante
|
Citação:
Citação:
Quando se cria uma função deve-se iniciar a linha com o tipo de dado que ela retorna: int main(void) {} void main(void) {} return não é um tipo de dado, return é uma instrução. em int main(void){} vc deve usar return <inteiro> usa-se retun 0; para "dizer" que o programa não encontrou erros na execução. Se houver erros me avisem, pois estou aprendendo. |
||
|
|
|
|
|
#13 (permalink) |
|
Zumbi
|
Para pausar o programa após a execução sem fechar o prompt é melhor usar o getch() ao invés do system(), uma vez que este último só funciona no Windows. Com disseram, não é problema do C, é problema do subsistema de 16 bits ( Prompt do DOS ), que fecha o prompt assim que a execução termina ( se você executar o programa a partir do próprio prompt, ele não fecha ).
Fergo |
|
|
|
|
|
#14 (permalink) |
|
Membro Senior
|
ja aproveotando o topico pessoal...
eh q eu instalei o linux no meu pc e gostaria de saber como uso o compilador gcc (padrão do linux) para compilar meus programas??? VLW
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#15 (permalink) |
|
Veterano
Registrado em: Apr 2007
Localização: ls Espirito Santo | grep Vila Velha
Mensagens: 1.319
Reputação: 15
![]() ![]() ![]() |
gcc -o nome_do_executavel nome_do_fonte.c
__________________
Pensamento de um usuário: Estou com problemas. O que fazer? [ ]Procurar no google? [ ]Procurar no forum? [X]Postar no forum sem procurar no google e pesquisar no forum. Java write once, debug anywhere.(Eu gosto de java tah.) |
|
|
|
|
|
#16 (permalink) |
|
Membro Senior
|
mais isso ai eh no Executar Comando???
__________________
_____________________________ "Não consigo me convencer de que um Deus caridoso e onipotente teria propositalmente criado vespas parasitas com a intenção expressa de alimentá-las dentro de corpos vivos de lagartas." Charles Darwin |
|
|
|
|
|
#17 (permalink) |
|
Veterano
Registrado em: Apr 2007
Localização: ls Espirito Santo | grep Vila Velha
Mensagens: 1.319
Reputação: 15
![]() ![]() ![]() |
Sim, na linha de comando
__________________
Pensamento de um usuário: Estou com problemas. O que fazer? [ ]Procurar no google? [ ]Procurar no forum? [X]Postar no forum sem procurar no google e pesquisar no forum. Java write once, debug anywhere.(Eu gosto de java tah.) |
|
|
|
|
|
#18 (permalink) | ||
|
Super Participante
Registrado em: Apr 2005
Localização: São Gonçalo do Sapucaí - MG
Idade: 24
Mensagens: 554
Reputação: 16
![]() ![]() |
Citação:
Citação:
Falou! ![]()
__________________
Flávio. "Quem lê é", Revista Superinteressante. Graduado !!! Ciência da Computação - UninCor - Três Corações-MG. ![]() Rock n' Roll stop the traffic
|
||
|
|
|
|
|
#19 (permalink) | |
|
Zumbi
Registrado em: Jan 2004
Mensagens: 5.276
Reputação: 189
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Olha, não é que "o tipo de retorno void não é mais aceito para funções no padrão ANSI C". Funções com o tipo de retorno void são perfeitamente válidas na linguagem C padrão - nunca deixaram de ser, aliás. O padrão ANSI C fala especificamente da função main: essa sim tem um tipo de retorno que deve ser sempre o mesmo: int. Para as demais funções, não existe restrição. [edit] Detalhe: um compilador ANSI C não deve acusar erro de compilação ao encontrar a função main definida como uma função que retorna o tipo void, mas apenas emitir uma advertência. Já na linguagem C++ é diferente: main não retornando int é erro de compilação.
__________________
------------------------------------------------ Muito bom. Mas tijolo não revida! ------------------------------------------------ |
|
|
|
|
|
|
#20 (permalink) | |
|
Super Participante
|
O gcc manda warning(não erro!!!) quando vc usa "void main()";
Citação:
|
|
|
|
|
![]() |
| Opções do Tópico | |
|
|