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

allskin

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

29 mensagens neste tópico

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 ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :|

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, sou da turma do Allskin e acho que o Stor quer isso com 1 estrutura For =S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Scanf é equivalente ao cin?

Sim, é mais ou menos equivalente.

O cin é em C++. Vós quereis em C ou em C++?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tanto me faz, andamos a dar uma mistura dos dois :thumbsup:

Era só para ter a certeza.

Obrigado pela resposta ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
se nao sabes como fazer isso mais vale estudares, ou entao desiste da programaçao.

Acredita que não a estou a dar por gosto..:thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

... 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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

... 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

... 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?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

... 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]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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++?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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