Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

allskin

[C] Ajuda: Progr. que leia 50 n.º menos o 1.º e último (Resolvido)

Mensagens Recomendadas

allskin    0
allskin

Boas ;)

Antes de mais bom ano  :thumbsup:

Tenho um teste de programação em C para corrigir e sinceramente nem sei para onde me virar..

Estou a dar Matrizes e estou completamente a apanhar do ar, portanto, peço-vos aqui ajuda.

"Um programa que leia uma série de 50 números inteiros do teclado e que depois os escreva todos de novo no ecran, excepto o primeiro e o ultimo"

Alguma ideia?

Cumps ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Warrior    68
Warrior

supondo que o número de elementos é desconhecido (caso contrário usa-se um for) e que ele lê até ao final do input.

    int k,ant;
    scanf("%d %d",&k,&ant);
    while (scanf("%d",&k)) {
          printf("num: %d\n",ant);
          ant=k;
    }

Mas se é a correcção de um teste, talvez devesses usar algo mais "normal"..

Não faço ideia se podes usar feof(stdin) para testar o final do input ou não..

(Talvez te seja dado o número de elementos no ínicio, se for, basta-te ler o primeiro fora do for, e todos os outros (excepto um) dentro, e imprimi-los.

Ou então ler tudo para um vector começar na posição 1 (logo segundo número) e imprimir tudo até à posição n-2.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
allskin    0
allskin

Pois, dava jeito eheh :thumbsup:

O número de elementos do array é sempre 50, mas sinceramente não percebo como faço para ele não dar nem o primeiro nem o ultimo numero :|

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Warrior    68
Warrior

int i,a;
scanf("%d",a);
for (i=0;i<48;i++) {
  scanf("%d",&a);
  printf("%d\n",a);
}
scanf("%d",&a);

É lido 1 elemento (o primeiro) de seguida são lidos 48, e todos eles impressos. Lê-se outro elemento no final só para garantir que são todos lidos, mas é desnecessário no fundo.

Ou podem ler para um vector e no final imprimir o vector.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mula_russa    0
mula_russa

Boas ;)

Antes de mais bom ano  :thumbsup:

Tenho um teste de programação em C para corrigir e sinceramente nem sei para onde me virar..

Estou a dar Matrizes e estou completamente a apanhar do ar, portanto, peço-vos aqui ajuda.

"Um programa que leia uma série de 50 números inteiros do teclado e que depois os escreva todos de novo no ecran, excepto o primeiro e o ultimo"

Alguma ideia?

Cumps ;)

a forma mais simples d fazer isso é ler os 50 numeros para o array e dps fazer um ciclo for que escreva no ecra a partir da segunda posicao do array ate a penultima. se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

... se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Mas que é isto? Grande incentivo que lhe estás a dar...

Se não sabe aprende como toda a gente agora desistir? isso é para os fracos! :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
allskin    0
allskin

... se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Mas que é isto? Grande incentivo que lhe estás a dar...

Se não sabe aprende como toda a gente agora desistir? isso é para os fracos! :thumbsup:

É isso que vou tentando perceber.

Já agora, neste código:

int i,a;

scanf("%d",a);

for (i=0;i<48;i++) {

  scanf("%d",&a);

  printf("%d\n",a);

}

scanf("%d",&a);

O que faz o "d" aqui?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Já agora, neste código:

int i,a;

scanf("%d",a);

for (i=0;i<48;i++) {

  scanf("%d",&a);

  printf("%d\n",a);

}

scanf("%d",&a);

O que faz o "d" aqui?

Deves-te referir ao %d...

Isso indica que está a ler um tipo de dados inteiro.

Se fosse %s seria uma string por exemplo. %c seria um caracter... etc..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Mas se já está declarado como int lá em cima, qual é a diferença?

Pois... Isso tens de perguntar a quem inventou isso.. :thumbsup:;)

Em algumas linguagens como C# ou Java não é necessário haver uma distinção dessas mas em C sim...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mula_russa    0
mula_russa

... se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Mas que é isto? Grande incentivo que lhe estás a dar...

Se não sabe aprende como toda a gente agora desistir? isso é para os fracos! :thumbsup:

acho k a parte do

... se nao sabes como fazer isso mais vale estudares

é incentivo suficiente. Não te parece?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

... se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Mas que é isto? Grande incentivo que lhe estás a dar...

Se não sabe aprende como toda a gente agora desistir? isso é para os fracos! ;)

acho que a parte do

... se nao sabes como fazer isso mais vale estudares

é incentivo suficiente. Não te parece?

[OFFTOPIC]

Eu quando exponho uma dúvida não gosto que me digam "Olha vai estudar ou desiste". É disso que me referia.:thumbsup:

Por mim não falo mais nisto.

[/OFFTOPIC]

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Warrior    68
Warrior

Mas se já está declarado como int lá em cima, qual é a diferença?

Tu não estás a aprender C na escola, mas sim C++.

C++ é uma "extensão" de C, código de C funciona em C++, mas código de C++ não funciona em C.

Cin é exclusivo ao C++, scanf(); foi implementado no C, logo funciona em ambos.

Eu sugeria que procurasses ajuda na outra secção do forum.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazzer    0
Hellblazzer

Eh pa nós tamos a dar C++.  mula_russa se não queres ajudar mais vale estares calado não? Não sou moderador nem nada mas esse tipo de comentários não ajudam nada em qualquer fórum...Se nós não sabemos fazer o programa e viemos perguntar aqui é porque já andámos a procura no livro, inclusive eu que tenho além do manual escolar o C++ DeMystified de Kent da Osbourne.

Mais uma vez, se vens armado em stor dizer para estudarmos e não explicas nada (como acontece connosco e mete exercícios nos testes que nem sequer fizemos nem sabiamos que dava para fazer em C++) até podes continuar a falar e a postar spam...

É por essas atitudes que na nossa turma a nota mais alta foi a minha, que foi 6,3.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mula_russa    0
mula_russa

olha desculpem lá voltar a esta conversa. Mas isto irrita-me sinceramente! vais-me dizer que já andas-te a procura num livro e mais nao sei onde e que não encontras-te uma explicação de um ciclo for?! quanto a parte do se não queres ajudar mais vale estar calado eu já vos disse uma maneira , e bastante simples por sinal de fazer isso. agora se não estas com atençao ao que se diz aqui, muito provavelmente tb nao estas com atençao ao que ensinam nas aulas...

Eu não venho armado em nada. A unica coisa que vos disse foi, por outras palavras, se nao sabem fazer estudem e se nao kere estudar desistam...

E por favor. como diz o hipnoted "Por mim não falo mais nisto".

Peço desculpa pelo offtopic

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Tenham calma pessoal, estamos aqui para nos ajudarmos uns aos outros.

Hellblazzer, o que é que não percebes? Tens de apresentar dúvidas concretas.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
allskin    0
allskin

Mas se já está declarado como int lá em cima, qual é a diferença?

Tu não estás a aprender C na escola, mas sim C++.

C++ é uma "extensão" de C, código de C funciona em C++, mas código de C++ não funciona em C.

Cin é exclusivo ao C++, scanf(); foi implementado no C, logo funciona em ambos.

Eu sugeria que procurasses ajuda na outra secção do forum.

O nosso stor diz que tanto faz lhe darmos o programa com os printf ou com os cout :thumbsup:

Mas sim, oficialmente estou a dar C++ (ou a tentar..)

Obrigado pela ajuda.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

Quanto à duvida inicial nada mais simples:

enche o array de valores e depois faz um ciclo for a começar no segundo elemento e acabar no penúltimo. É tudo o que tens k fazer.

Mas se já está declarado como int lá em cima, qual é a diferença?

Tu não estás a aprender C na escola, mas sim C++.

C++ é uma "extensão" de C, código de C funciona em C++, mas código de C++ não funciona em C.

Cin é exclusivo ao C++, scanf(); foi implementado no C, logo funciona em ambos.

Eu sugeria que procurasses ajuda na outra secção do forum.

warrior. Desculpa-me estar a discordar mas disseste duas coisa que não saõ averdade.

O código C não pode ser todo compilado com um compilador de C++. Normalemente o pessoal escreve código C que pode ser compilado como C++ mas as linguagens têm mais diferenças para alem do suporte para objectos. Não me perguntem quais que u não me lembro, o rui carlos deve saber isso.

Dizer: O cin é exclusivo do C++ tambem não é muito correcto. O cin ou muito me engano ou é um objecto declarado na biblioteca iostream que pode ser usada em c. Não é uma função das que vem implementadas com o c++ nem nada que se pareça.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazzer    0
Hellblazzer

Tenham calma pessoal, estamos aqui para nos ajudarmos uns aos outros.

Hellblazzer, o que é que não percebes? Tens de apresentar dúvidas concretas.

Bem é o seguinte, eu declaro 1 array de 50 caracteres/elementos, depois como faço 1 "cin" que leia 50 números inteiros digitados pelo user, de seguida atribui esses 50 nºs aos 50 elementos do array, e depois fazer o output deles todos, menos do 1º e do 50º ou seja de 2 a 49.

Como faço isto em C++?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Warrior    68
Warrior

warrior. Desculpa-me estar a discordar mas disseste duas coisa que não saõ averdade.

O código C não pode ser todo compilado com um compilador de C++. Normalemente o pessoal escreve código C que pode ser compilado como C++ mas as linguagens têm mais diferenças para alem do suporte para objectos. Não me perguntem quais que u não me lembro, o rui carlos deve saber isso.

Dizer: O cin é exclusivo do C++ tambem não é muito correcto. O cin ou muito me engano ou é um objecto declarado na biblioteca iostream que pode ser usada em c. Não é uma função das que vem implementadas com o c++ nem nada que se pareça.

Generalizei.

C ANSI (o "correcto", é o standard mais requisitado nos concursos, universidades etc, apesar do C99 ser mais recente) é compilável em C++. É óbvio que se eu for buscar bibliotecas que não existam em C++ o código não pode ser compilado lá.

A biblioteca iostream é de C++. Ela é o correspondente à stdio do C.

http://en.wikipedia.org/wiki/Iostream

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade