Ir para o conteúdo
Rafael Holanda

Como calcular o cubo de número inteiro usando função

Mensagens Recomendadas

Rafael Holanda

Bom dia

Pessoal

algume pode me ajudar ? quero programar o cubo de numero inteiro usando função mas nao consegui...

Attc,

Rafael Holanda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

sabes como calcular o cubo de um número ?

sabes como criar uma função ?

sabes como retornar um valor de uma função ?

sabes como guardar/usar um valor de retorno de uma função ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rodrigolima

Rafael Holanda, Bom dia

Já faz algum tempo que não programo em C, mas segue o que entendi em relação a sua pergunta:

#includes

int main(){

int valor = 0;
int cubo = 0;

valor = 3;

// Chamada da função RetornaCubo
// Retorno da função para a variavel cubo
cubo = RetornarCubo(valor);

// cubo será igual a 3 elevado a 3 = 27

return 0;

}

// Função RetornarCubo
int RetornarCubo(int n){
return (n * n * n);
}

Acredito que isto lhe dará um caminho a seguir.

Grande abraço do Brasil

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Rafael Holanda, Bom dia

Já faz algum tempo que não programo em C, mas segue o que entendi em relação a sua pergutna:

#includes

int main(){

int valor = 0;
int cubo = 0;

valor = 3;

// Chamada da função RetornaCubo
// Retorno da função para a variavel cubo
cubo = RetornarCubo(valor);

// cubo será igual a 3 elevado a 3 = 27

return 0;

}

// Função RetornarCubo
int RetornarCubo(int n){
return (n * n * n);
}

Acredito que isto lhe dará um caminho a seguir.

Grande abraço do Brasil

já ouviste este ditado : "dá a um homem um peixe, ele come o dor um o dia, ensina um homem pescar, ele come para a vida." ?

o que o Rafael aprendeu : a vir ao fórum e tem a resposta sem pensar ...

bem ... já que o código apareceu, fica então a solução (sem usar a função pow) :

#include <stdio.h>
#include <stdlib.h>

int cube(int n) {
 return n * n * n;
}

int main(int argc, char ** argv) {
 int valor = 0;

 if (argc < 2) {
   printf("command : cube <number>\n");
   exit(-1);
 }

 if ((sscanf(argv[1], "%d", &valor) == 0) {
   printf("valor invalido\n");
   printf("command : cube <number>\n");
   exit(-1);
 }

 printf("O cubo de %d e : %d\n", valor, cube(valor));

 return 0;
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rafael Holanda

Valeu pessoal....ficou assim...

#include<stdio.h>
#include <stdlib.h>

float cubo (float n){
float m;
m=n*n*n;
return m;
}

main( void){
float z;
printf("digite um numero para saber seu cubo: ");
scanf("%f", &z);
printf(" o cubo de %0.f e: %.0f", z, cubo(z));
printf("n\n");

system("pause");
return 0;
}

Editado por thoga31
Tags code + GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

está errado ...

dizes no teu primeiro post que é de um número inteiro e depois usas virgula flutuante (ainda por cima um float em vez de um double)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Aliás, duplamente errado: o main não tem tipo, mas tem valor de retorno...

Acredito que isto lhe dará um caminho a seguir.

Um caminho? Rephrase, a solução!

No P@P fomentamos não a "dádiva" de soluções feitas mas sim a troca de conhecimentos e o esclarecimento de dúvidas.

Seguindo o provérbio citado pelo @Happy, nós ensinamos a pescar e não damos o peixe, muito menos já cozinhado e sem espinhas.

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Aliás, duplamente errado: o main não tem tipo, mas tem valor de retorno...

Penso que tal é válido em ANSI C C89 (que por acaso costumava ser o standard usado por omissão na generalidade dos compiladores de C), visto que o tipo int era assumido por omissão. Não é que seja aconselhável omitir o tipo de retorno, mas também não é propriamente um erro.

Editado por Rui Carlos
Clarificação sobre a que versão do C me referia.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rafael Holanda

está errado ...

dizes no teu primeiro post que é de um número inteiro e depois usas virgula flutuante (ainda por cima um float em vez de um double)

Meu caro...

compilou normal aqui,,,, no meu Dev C++...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Meu caro...

compilou normal aqui,,,, no meu Dev C++...

eu não disse que o código está errado, o que eu disse foi que a resolução está errada

são coisas difetentes


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rodrigolima

Boa tarde a todos

Em relação a usar ou não o int main ou void main, vai da cabeça de cada um.Como aprendi a programar C/C++ no Linux e não no Windows, certas particularidades são intrínsecas(como se fossem coisas de sangue).Não tem como negar e nem esquecer.

No mais é isso.

E Rafael Holanda, sempre que for pedir ajuda no fórum, mesmo que não saiba a sintaxe da linguagem, existe o bom e velho algoritmo.É genérico e serve para explanar nossas dúvidas.Ou seja, pratique ALGORITMO.

Grande abraço a todos.

Editado por rodrigolima
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

rodrigolima,

Não, o que acontece é que a maioria dos compiladores é extremamente tolerante relativamente ao código que lê e compila, e por isso é que void main é aceite em muitos compiladores (maus, ou então bons, mas mal configurados). Se, no entanto, ligares as opções -Wall -Wextra -pedantic -std=c99 do GCC (ou Clang) receberás avisos relativamente a várias situações:

  • declarar main sem tipo de retorno
  • declarar main com retorno diferente de int
  • não fazer return da função main (não se aplica ao C99, apenas ao C89, via parâmetro -std=c89)

Existem problemas mais profundos no caso de C89 (o que o GCC usa por defeito), como por exemplo o de não atribuir um tipo de retorno à main -- assume-se que é int e depois não fazer return; o que é devolvido ao sistema operativo? Não se sabe, é indefinido (e, portanto, deve ser evitado).

Isto não tem nada a ver com programar no Windows ou no Linux, mas sim com a configuração e grau de suporte do compilador para a linguagem C como ela é actualmente. Estamos em 2013, parece-me ridículo continuarmos a escrever C como em 1990.

Rui Carlos,

Com o C99 a declaração errada da main exige a emissão de um aviso por parte do compilador (não é um erro fatal, mas o objectivo é deprecar esse hábito com o tempo).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Por ANSI C referia-me ao C89 (mas já vi que o termo não é muito consensual, por isso vou editar o meu post anterior).

A questão de se faz sentido escrever C89 é complexa. Antes de mais, aquilo que referi é que omitir o int não é propriamente um erro (e como também referi, concordo que seja algo que não deve ser incentivado). Voltando ao que interessa, esta questão é complexa pois o C89 era (é?) o standard usado por omissão na generalidade dos compiladores. Havia funcionalidades do C99 que não eram suportadas pelos compiladores, e outras para as quais era necessário activar explicitamente o standard C99. Ou seja, para se ter mais garantias de portabilidade, convinha escrever o código em C89. E não é escrever C como em 1990, pois muito provavelmente em 1990 o suporte para C89 também era mau, e poucos escreviam C89.

É claro que neste caso escrever C99 também ia funcionar no C89, e eu também não gosto de ver funções sem o tipo de retorno, até porque muitas vezes as pessoas assumem erradamente que tal corresponde a void. Mas, como referi, o meu ponto é que isto não é um erro.


Relativamente ao main retornar void (que não é o caso do código que motivou a discussão) tenho ideia que esse hábito começou com alguns compiladores que aceitavam tal declaração. Aparentemente o C99 é pouco claro quanto à necessidade da função main devolver int, como argumentado aqui.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

O standard usado por defeito pelos compiladores não é verdadeiramente importante, uma vez que tanto para C89 como para os posteriores são emitidos avisos quando a main é mal declarada. Activar essas opções de aviso é que é verdadeiramente importante, e algo que poucas vezes é feito/ensinado aos alunos.

Quanto ao código de 1990, não me referia a C89 mas sim ao código daquela altura, que ainda é o que se vê em muitos dos tutoriais e bastante documentação online e mesmo em literatura em papel. Hoje em dia temos obrigação de escrever código de outra forma... A declaração da main é apenas um dos pontos importantes :)

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.