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

Guest Markito

[Resolvido] Duvida em achar o quadrado

Mensagens Recomendadas

Guest Markito

Estava a reler o meu pdf para consolidar o que aprendi quando me atrapalhei ali na parte dos argumentos...

Eles dão o seguinte código para achar o quadrado de um numero:

#include <stdio.h>
int square (int x) /* Calcula o quadrado de x */
{
printf ("O quadrado e %d",(x*x));
return(0);
}
int main ()
{
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
printf ("\n\n");
square(num);
return(0);
}

Eu tentei fazer de outra maneira mais minha e escrevi no code::blocks:

int main()
{
int x,square;
square=x*x;
printf("Entre com um número:\n");
scanf("%d",&x);
printf("O quadrado de %d e':%d.",x,square);
return (0);
}

Mas este programa não retorna um resultado certo!!!

Eu inseri o 2 e ele achou como quadrado: 1122308112!

O que falhou no programa que construí? E qual uma maneira prática e fácil de se compreender para achar o quadrado de um numero sem escrever tantas funções como no 1º exemplo?

Muito obrigado pela vossa ajuda!

Editado por pmg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

estas a fazer o quadrado quando a variavel x esta' com "lixo";

int main()
{
int x,square;
printf("Entre com um número:\n");
scanf("%d",&x);
square=x*x;
printf("O quadrado de %d e':%d.",x,square);
return (0);
}


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AJBM

Tu dizias que o square =x*x antes de dares um valor ao x, por isso como pikax disse o x iria ter "lixo" isto é um valor qualquer atribuido pelo pc

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

E qual uma maneira prática e fácil de se compreender para achar o quadrado de um numero sem escrever tantas funções como no 1º exemplo?

O uso de diferentes funções para diversos elementos de cada programa é um método muito bom para tornar o programa mais fácil de compreender. Tirando raras excepções, não é possível tornar um programa mais fácil de compreender tirando-lhe funções.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Aproveito para referir que a tua função square do primeiro exemplo deveria era retornar o quadrado e não fazer o output. Isso sim é uma função "universal", por assim dizer, ou seja, podes utilizar em qualquer lado sem o side-effect de um output "forçado".

int square (int x) /* Calcula o quadrado de x */
{
  return x*x;
}

// noutra parte do programa...

int binomio = square(a) + 2*a*b + square(b);  // aqui não queres nenhum output, só queres mesmo saber os quadrados dos números.


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Dexter's Lab

Limpa o lixo que tens na variável "square". Quando lhe tás a atribuir um valor já ele lá tinha um valor anteriormente. Tens de limpar esse número da variável. Agora... como se faz isso?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Guest Markito

Faz-se assim:

#include<stdio.h>
int main()
{
int x,square;
printf("Entre com um número:\n");
scanf("%d",&x);
square=x*x;
printf("O quadrado de %d e':%d.",x,square);
return (0);
}

Obrigado a todos. Está resolvido... por agora! Pois decerto terei mais dúvidas.

Obrigado pela paciência! :confused:

Tal como o pikax disse!

Editado por pmg
Falta LP no GeSHi

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.