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

Crazyluigi

piramide de numeros

7 mensagens neste tópico

#include<stdio.h>
#include<conio.h>


void main()
{

int num;
int i,j,k,n,l;

do
{
printf(" Introduza um numero para a piramide : ");
scanf("%d",&num);
}
while (num<2);
n=num-1;
l=0;
k=0;
for (i=1; i<=num; i++)
{

	for (l=1; l<=n; l++)
	{
		printf(" ");
	}
	for (j=1; j<=i; j++)
	{
		printf("%d",j);
	}
	for (k=j; k<=i; k--)
	{
		printf("%d",(k-1));
	}
	sair:
	printf("\n");
	n--;

}
getche();
}

1º estou no começo de aprendizagem da linguagem;

2º este exercicio pede-me que faça uma piramide de numeros com base no numero inserido e o codigo acima é a minha tentativa de o executar... mas só me dá metade da piramide e pura e simplesmente não estou a ver onde é que está o erro, se alguém me puder ajudar agradecia!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom, vi assim muito por alto e como houve logo algo a chamar-me à atenção nem continuei.

Isto: "while (num<2);"

É suposto servir para quê? Assim como está, não faz nada. Não querias abrir { } e envolver outras operações?

Isso dá-te um ciclo infinito se o número for menor que 2.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

  do

        {

        printf(" Introduza um numero para a piramide : ");

        scanf("%d",&num);

        }

        while (num<2);

esta parte serve para repetir cabeçalho enquanto o valor for inferior a 2 ( apesar de nao estar expresso, tenho de corrigir)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ups... Tens razão. :D

Aquela indentação induziu-me em erro. Não reparei no do lá em cima. x)

Seria bom que deixasses também um exemplo do output que deveria produzir...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

este é o output desejado para a piramide por ex. com o input 5:

    1

  121

  12321

1234321

123454321

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O último ciclo for:

for (k=j-1; k>1; k--)
{
     printf("%d",(k-1));
}

Tem que ser assim. Vê se percebes porque.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PERFEITAMENTE!!!!!!!!

andava lá perto mas nao estava a perceber bem o que faltava... ja tinha pensado num GOTO para que o ciclo começasse a partir do 1 na 2ª linha....

Muito obrigado.. tá resolvido!!! :D

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