Linguagem C

  • Uploaded by: Antonio Dias
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Linguagem C as PDF for free.

More details

  • Words: 2,658
  • Pages: 20
linguagem C OI td bom comecei a pouco tempo linguagem C e quando compilei este programa deu erro antes do printf cm se o break ñ podesse ser usado alguém pode me dizer se é isso mesmo?(desculpem o texto enorme) #include <stdio.h> int main() { int Count; char ch; printf(" Digite uma letra-"); for (Count=1;;Count++); { scanf("%c",&ch); if (ch == 'x') break; printf("\nLetra:%c\n",ch); scanf("%c",&ch); } return 0; }

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 11-10-2008, 19:10 Desbravador_ Membro Senior

#2 (permalink) pode ser falta de colchetes ? if (ch == 'x') { break; }

Registrado em: Oct 2007 Mensagens: 166 Reputação: 5

Desbravador_ Ver Perfil Público Enviar mensagem privada para Desbravador_ Pesquisar mais mensagens de Desbravador_ 11-10-2008, 19:23 Helga Gisele Newbie

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

#3 (permalink) o problema é q eu tirei isso da minha apostila e ñ tinha colchetes, mesmo asssim vou tentar usando colchetes. outra coisa vc ou + alguém poderiam me explicar a diferença do return(0) e do return(x*y), retornando com o valor de uma equação qualquer? para vcs entenderem a questão era a seguinte: escreva um programa q some dois numeros e retorne o valor da soma. pra finalizar eu ñ consigo entender a diferença entre esses dois retornos.

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 11-10-2008, 19:37

#4 (permalink)

MARCZEWSKI Super Participante

Citação:

Registrado em: Jul 2008 Mensagens: 654

Postado Originalmente por Helga Gisele o problema é q eu tirei isso da minha apostila e ñ tinha colchetes, mesmo asssim vou tentar usando colchetes. outra coisa vc ou + alguém poderiam me explicar a diferença do return(0) e

Reputação: 5

do return(x*y), retornando com o valor de uma equação qualquer? para vcs entenderem a questão era a seguinte: escreva um programa q some dois numeros e retorne o valor da soma. pra finalizar eu ñ consigo entender a diferença entre esses dois retornos. Código: #include <stdio.h> int main() { //int Count; char ch; printf(" Digite uma letra-"); do { scanf("%c",&ch); if (ch == 'x') break; printf("\nLetra:%c\n",ch); //scanf("%c",&ch); }while (ch!='x'); return 0; }

assim funciona!! nao sei se é o mesmo caso do C, mas no pascal vc nao pode quebrar a execução do FOR(pelo erro q deu no C, acho que isso tambem serve pra ele), as vezes isso ate funciona no pascal. conclusao: no C vc nao pode quebrar a execuçao de um FOR.(na mensagem de erro, diz que o break so é usado em loop ou switch)(q eu saiba for é um loop). no C, tudo é funcao e toda função retorna um valor(exceto void em alguns casos). esse valor retornado pode ser direcionado a alguma variavel(ou coisa do genero) ou nao. na maioria das vezes quando se coloca return(0) é pq se quer usar a funçao como um procedimento. Nao sei muito bem como te explicar, mas o return ele retorna um valor que pode ser usado ou nao em outro trecho do codigo. se nao ficou claro, desculpas, mas nao sei muito bem como te explicar digitando.

espero ter ajudado!! __________________ Estarei um pouco ausente do forum por um tempo!!! Caso seja importante, mande MP(duvidas somente no forum) grato, Última edição por MARCZEWSKI : 1210-2008 às 0:52.

MARCZEWSKI Ver Perfil Público Enviar mensagem privada para MARCZEWSKI Pesquisar mais mensagens de MARCZEWSKI 11-10-2008, 20:23 jose_silva_neto Ubbergeek

#5 (permalink) Citação: Postado Originalmente por Helga Gisele

Registrado em: Aug 2002 Mensagens: 4.330 Reputação: 35

OI td bom comecei a pouco tempo linguagem C e quando compilei este programa deu erro antes do printf cm se o break ñ podesse ser usado alguém pode me dizer se é isso mesmo? (desculpem o texto enorme) Boa noite Código: #include <stdio.h> int main() { int Count; char ch; printf(" Digite uma letra-");

for (Count=1;;Count++) { scanf("%c",&ch); if (ch == 'x') break; printf("\nLetra: %c\n",ch); scanf("%c",&ch); } return(0); }

Para compilar (no Linux): gcc -Wall -W letra.c -o letra Para rodar (no Linux): ./letra Fique com Deus

jose_silva_neto Ver Perfil Público Enviar mensagem privada para jose_silva_neto Pesquisar mais mensagens de jose_silva_neto 12-10-2008, 0:55 MARCZEWSKI Super Participante

#6 (permalink) Citação: Postado Originalmente por jose_silva_neto Boa noite Código:

Registrado em: Jul 2008 Mensagens: 654 Reputação: 5

#include <stdio.h> int main() { int Count; char ch; printf(" Digite uma

letra-"); for (Count=1;;Count++) { scanf("%c",&ch); if (ch == 'x') break; printf("\nLetra: %c\n",ch); scanf("%c",&ch); } return(0); }

Para compilar (no Linux): gcc -Wall -W letra.c -o letra Para rodar (no Linux): ./letra Fique com Deus Essa é muito boa oh!!! hehehehe eu tentei de todo jeito e nao estava dando certo, quando mudei para o do/while deu certo. Olhando o seu codigo, agora q percebi o ' ; ' no final do FOR. hehehe __________________ Estarei um pouco ausente do forum por um tempo!!! Caso seja importante, mande MP(duvidas somente no forum) grato,

MARCZEWSKI Ver Perfil Público Enviar mensagem privada para MARCZEWSKI Pesquisar mais mensagens de MARCZEWSKI

12-10-2008, 23:47 jose_silva_neto Ubbergeek

Registrado em: Aug 2002 Mensagens: 4.330 Reputação: 35

#7 (permalink) Citação: Postado Originalmente por MARCZEWSKI Essa é muito boa oh!!! hehehehe eu tentei de todo jeito e nao estava dando certo, quando mudei para o do/while deu certo. Olhando o seu codigo, agora q percebi o ' ; ' no final do FOR. hehehe Boa noite, Note que a menos do ";" que removi e da endentação (é a BSD/Allman http://en.wikipedia.org/wiki/Indent_...sd_in_Emacs.29 , a melhor que existe na minha opinião), não fiz nada de novo no código da Helga . Fique com Deus

jose_silva_neto Ver Perfil Público Enviar mensagem privada para jose_silva_neto Pesquisar mais mensagens de jose_silva_neto 13-10-2008, 0:15 MARCZEWSKI Super Participante

#8 (permalink) Citação: Postado Originalmente por jose_silva_neto Boa noite,

Registrado em: Jul 2008 Mensagens: 654 Reputação: 5

Note que a menos do ";" que removi e da endentação (é a BSD/Allman http://en.wikipedia.org/wiki/Indent_...sd_in_Emacs.29 , a melhor que existe na minha opinião), não fiz nada de novo no código da Helga . Fique com Deus

percebi isso, ele executa o FOR(executa como se fosse para segurar a execuçao das linhas abaixo), quando vai executar o BREAK(o break nao esta dentro do for) ele da o erro q o break so é utilizado dentro de loop(quando eu vi o erro nao entendi o pq do erro, ja q o FOR tambem é um loop.). mas como falei so pascal essa pratica dentro de um FOR nao é aconselhada(achei que no C tambem era assim), pois em alguns momentos ele nao vai se comportar cmo o esperado(podendo perder a sequencia de execuçao). esse problema serviu para mostrar que devemos ter mais atençao na hora de analisar um codigo. vlw __________________ Estarei um pouco ausente do forum por um tempo!!! Caso seja importante, mande MP(duvidas somente no forum) grato,

MARCZEWSKI Ver Perfil Público Enviar mensagem privada para MARCZEWSKI Pesquisar mais mensagens de MARCZEWSKI 19-10-2008, 17:21 Helga Gisele Newbie

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

#9 (permalink) como faço um scanf de um número binário, tentei %b e %ob #include <stdio.h> int main() { int n,y,h,i=0; char d; do { printf ("Digite o tamanho da

sequencia:"); scanf ("%d",&y); for(n=1;n<=y;n++) { printf("Digite o %d numero:",n); scanf("%d",&h); if(i ou nao :\n"); scanf("%c",&d); getch(); } while (d!='n'); return 0; } nesse programa ele dá o maior número de uma sequência, a qual vc diz o tamanho, no fim era para perguntar se vc gostaria de continuar se sim continuaria, se ñ fechava a tela, só q o programa só continua e ñ fecha com o ñ. O q fiz de errado? Última edição por DJ. : 29-10-2008 às 0:18. Motivo: unindo

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 19-10-2008, 21:02 MARCZEWSKI Super Participante

#10 (permalink) Citação: Postado Originalmente por Helga Gisele

Registrado em: Jul 2008 Mensagens: 654 Reputação: 5

#include <stdio.h> int main() { int n,y,h,i=0; char d; do { printf ("Digite o tamanho da sequencia:"); scanf ("%d",&y); for(n=1;n<=y;n++) { printf("Digite o %d numero:",n); scanf("%d",&h); if(i ou nao :\n"); scanf("%c",&d); getch(); } while (d!='n'); return 0; } nesse programa ele dá o maior número de uma sequência, a qual vc diz o tamanho, no fim era para perguntar se vc gostaria de continuar se sim continuaria, se ñ fechava a tela, só q o programa só continua e ñ fecha com o ñ. O q fiz de errado? mude para Código: printf("\nO maior numero eh: %d",i); printf("\nDeseja continuar sim <s> ou nao :\n"); scanf("%.c%c",&d);

quando vc ler um inteiro, o enter da leitura fica no buffer. entao quando chega

na linha scanf("%c",&d); ele "limpa" o buffer e nao ler(quando a tela vc digita o N ou o S, na verdade vc esta no getch() e nao do scanf). esse %.c "limpara" esse buffer do teclado. espero ter ajudado!!! __________________ Estarei um pouco ausente do forum por um tempo!!! Caso seja importante, mande MP(duvidas somente no forum) grato,

MARCZEWSKI Ver Perfil Público Enviar mensagem privada para MARCZEWSKI Pesquisar mais mensagens de MARCZEWSKI 25-10-2008, 18:24 Helga Gisele Newbie

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

Helga Gisele Ver Perfil Público

#11 (permalink) valeu mas, como faço p/ captar um número binário?

Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 27-10-2008, 22:20

#12 (permalink)

Helga Gisele Newbie

MARCZEWSKI, aprendi outro comando que apaga o scanf do buffer é o fflush(stdin); vc pode me dizer como o outro vai funcionar?

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 27-10-2008, 23:09 JDX Super Participante

#13 (permalink) Citação: Postado Originalmente por Helga Gisele fflush(stdin);

Registrado em: Mar 2007 Mensagens: 521 Reputação: 6

Não! Isso é gambiarra, se você olhar no padrão da linguagem C, verá que essa função é usada para limpar steams de saída e se você colocar um de entrada (stdin, no caso) a ação é indefinida (não é obrigatório o funcionamento, depende da implementação). Nesse caso eu uso: Código PHP: int ch; while ((ch=getchar()) != EOF && ch != '\n' );

O único problema dessa abordagem é que se o buffer estiver vazio, você terá que apertar enter, mas você pode resolver isso com um teste usando o tamanho da string. __________________ Fedora 11 (x86_64) Não respondo dúvidas técnicas por MP.

JDX Ver Perfil Público Enviar mensagem privada para JDX Pesquisar mais mensagens de JDX 28-10-2008, 20:11 Helga Gisele Newbie

#14 (permalink) Nossa eu ñ sabia valeu JDX, olha eu aprendi com meu prof. valeu msm.

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 30-10-2008, 16:38 Helga Gisele Newbie

#15 (permalink) #include <stdio.h> #include <stdlib.h>

int main() {

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

int y=0,x=0; float h=0,z=0,nota[10][3]; for (x=0;x<10;++x) { for (y=0;y<3;++y) { printf("\nEntre com a %d.o nota do %d.o aluno:",x+1,y+1); scanf("%f",&z); z=z+nota[x][y]; } z=z/3; h=h+z; } h=h/10; printf("\n A media e:%.2f",h); getch(); return 0; } Pessoal alguém pode dar uma olhadinha nesse programa. ele pede a media de uma classe de 10 alunos sendo que cada aluno tem 3 notas então ele faz a media das medias. Só q eu tô com um problema na parte em negrito no lugar dele somar as medias de cada aluno ele faz a média de cada um e divide por 10. Alguém poderia me dizer o q fiz de errado?

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 30-10-2008, 17:19 jose_silva_neto Ubbergeek

#16 (permalink) Boa tarde, Código:

#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) {

Registrado em: Aug 2002 Mensagens: 4.330 Reputação: 35

int y = 0,x = 0; float h = 0,z,nota[10][3]; for (x = 0; x < 10; ++x) { z = 0; /* É preciso zerar essa variável, pois ela armazena a soma das notas para cada aluno */ for (y = 0;y < 3;++y) { printf("\nEntre com a %d.o nota do %d.o aluno:",y+1,x+1); scanf("%f",¬a[x] [y]); /* A matriz contem as notas para cada aluno */ z+= nota[x][y]; /* É o mesmo que z = z + nota[x][y] */ } z z = z / 3 h h = h + z }

/= 3; /* É o mesmo que */ += z; /* É o mesmo que */

h/= 10; /* Média final */ printf("\n A media e:%.2f \n",h); //getch();

}

return(0);

Para compilar gcc -W -Wall media.c -o media Para rodar ./media Fique com Deus

jose_silva_neto Ver Perfil Público Enviar mensagem privada para jose_silva_neto Pesquisar mais mensagens de jose_silva_neto 30-10-2008, 20:20 Helga Gisele Newbie

#17 (permalink) Obrigada, por me ajudar

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 31-10-2008, 15:16 Helga Gisele Newbie

#18 (permalink) Código: #include <stdio.h> #include <stdlib.h>

Registrado em: Oct 2008 Localização: Fortaleza

int main() { float t=0,a=0,m=0; do { printf("Digite a nota do

Idade: 17 Mensagens: 11 Reputação: 0

trabalho:"); scanf("%.2f",&t); }while((t<0)||(t>10)); do { printf("Digite a nota da prova:"); scanf("%.2f",&a); }while((a<0)||(a>10)); t=(25/100)*t; a=(75/100)*a; m=a+t; if(m>=7) printf("\nPassaste com %.2f nota",m); else printf("\nPrecisa de exame"); getch(); return 0; }

Oi pessoal O q eu fiz de errado dessa vez ele só ta pegando a primeira nota e executando o resto. por favor, alguém me ajuda! O enunciado da questão é esse: Imagine que em dada disciplina, a nota final é obtida da seguinte forma: o trabalho tem peso de 25% e a prova tem peso 75%. Faça um programa que calcula a nota final da disciplina. Se a nota final for inferio a 7 , o programa deve imprimir a mensagem:"Precisa de exame". Caso contrário, imprime a mensagem:"Passaste com x nota".Desculpem tina esquecido de colocar o enunciado da questão. Última edição por Helga Gisele : 31-102008 às 16:57.

Helga Gisele Ver Perfil Público Enviar mensagem privada para Helga Gisele Pesquisar mais mensagens de Helga Gisele 31-10-2008, 15:50

#19 (permalink)

Core_Dump GeeK

Citação: Postado Originalmente por Helga Gisele #include <stdio.h> #include <stdlib.h>

Registrado em: Nov 2007 Mensagens: 2.173 Reputação: 22

int main() { float t=0,a=0,m=0; do { printf("Digite a nota do trabalho:"); scanf("%.2f",&t); }while((t<0)||(t>10)); do { printf("Digite a nota da prova:"); scanf("%.2f",&a); }while((a<0)||(a>10)); t=(25/100)*t; a=(75/100)*a; m=a+t; if(m>=7) printf("\nPassaste com %.2f nota",m); else printf("\nPrecisa de exame"); getch(); return 0; } Oi pessoal O q eu fiz de errado dessa vez ele só ta pegando a primeira nota e executando o resto. por favor, alguém me ajuda! Helga, Para alguns o scanf e apenas um recurso experimental, seu uso em demasia nos programas e ma pratica de programacao. Ve se o codigo abaixo lhe serve (sou iniciante, como voce). Dica : coloque o codigo entre TAGs CODE antes de postar, fica melhor para visualizar. No modo avancado clica no simbolo # que aparecem as tags cole o codigo no meio delas. Código:

#include <stdio.h> #include <stdlib.h> int main() { double s; char *t; float a=0,m=0; int i=0; printf("Digite a nota do trabalho:\n"); do{ t = getchar(); ++i; } while (i < 1 ); printf("Digite a nota da prova:\n"); scanf("%f",&a); s = atof (&t); s=0.25*s; a=0.75*a; m=a+s; if(m>=7){ printf("\nPassaste com %.2f nota",m); } else { printf("\nPrecisa de exame"); return 0; } }

__________________ ASUS M3A78-EM, 9600GSO, P-X3 8450, 2GB, HD 250GB, Slackware 12.1, KDE 3.5.1, kernel 2.6.30.5 Linux-user: #489296 Conheça os 7 pecados do Windows Última edição por Core_Dump : 31-102008 às 16:36.

Core_Dump Ver Perfil Público Enviar mensagem privada para Core_Dump Pesquisar mais mensagens de Core_Dump 31-10-2008, 19:23 Helga Gisele

#20 (permalink)

Newbie

Registrado em: Oct 2008 Localização: Fortaleza Idade: 17 Mensagens: 11 Reputação: 0

valeu pela dica, tentarei melhorar o uso dos comandos.

Related Documents

Linguagem C
June 2020 15
Linguagem C 02 String
November 2019 15
Fila Em Linguagem C
June 2020 14
Linguagem Inclusiva
November 2019 13

More Documents from ""

Tema
June 2020 22
Linguagem C
June 2020 15
Tabel F
July 2020 20
Bagian Isi 3.docx
June 2020 30
Contoh Soal 3-12.docx
June 2020 28
Kapasitor.docx
June 2020 21