Página 1 de 2

Rincon del PROGRAMADOR.Lenguaje C - NUEVA DUDA pag2

NotaPublicado: Mar Nov 20, 2007 0:07 am
por des1234
Pues si, ahi dejo la pregunta, espero que alguien entienda, o le guste o pueda servirme de ayuda en este post que pongo. Es la puta asignatura que tengo pendiente de aprobar para ser informático oficialmente reconocido :lol: y ya llevo 4 años con este y no tengo cojones, se me hace muy cuesta arriba. He pensado que si alguno entendeis o la estais dando, utilizar este post para posibles dudas que nos vayan surgiendo.

Planteo aqui la primera, no entiendo porque no me funciona este programa....

/*Programa que me diga todos los numeros perfectos comprendidos entre 2 numeros
dados.*/

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

main()
{
int num1;
int num2;
int aux;//variable que ira probando posibles divisores de un numero
int suma;

printf("Introduce numero1: comienzo de intervalo: ");
scanf("%d",&num1);
printf("Introduce numero2: final de intervalo: ");
scanf("%d",&num2);

num1=num1+1;

while (num1<num2)
{
suma=0;
aux=1;

while (aux<num1)
{
if (num1&aux==0)
{
suma=suma+aux;
}
aux++;
}

if(suma==num1)
{
printf("%d" , num1);
}

num1++;
}

getch();




}

/* PROGRAMACIÓN 2007-2008 © Juan Luis Marín Cruz */


Alguien puede ayudarme? O este post caera en el olvido? ;)

MUCHAS GRACIAS

Un fuerte abrazo

NotaPublicado: Mar Nov 20, 2007 0:08 am
por des1234
:shock: :cry: No permite margenes el foro?

Es que asi es hasta incomodo de leer... :?:

NotaPublicado: Mar Nov 20, 2007 0:13 am
por bender
Hola thunderlex

Prueba a cambiar el nombre de la función main(), a
int main(int argc, char *argv[])

Posiblemente asi funcione.

Suerte :)

NotaPublicado: Mar Nov 20, 2007 0:13 am
por tonyc4
Yo soy programador, hace tiempo que no toco C++ pero si quieres te echo una mano ok?

Para lo que haga falta aqui estoy

NotaPublicado: Mar Nov 20, 2007 0:15 am
por Iñakin
Como te ha dicho Benger, o sino vas a recibir ni devolver parametros la puedes poner de forma
void main(void)

Un saludo de un informatico y un consejo: consultoria no!!! jeje.

NotaPublicado: Mar Nov 20, 2007 0:15 am
por Loboluna
Yo en la carrera de ingenieria tenia esa asignatura pero apenas me acuerdo de nada, a ver si encuentro mis apuntes y ejercicios entre ellso ese mismo que los tengo todos resueltos y te los mando.
un saludo compi.

NotaPublicado: Mar Nov 20, 2007 0:16 am
por OST_NeoX
Si nos dice que se supone que tiene que hacer el programa lo mismo te ayudamos algo, pero asi pues dificilmente. Soy programador VB y metido tambien en temas de consultoría :S, aunque algo de C se.

Olvidate del argc y argv, ya que las variables que llenas (num1 y num2) las pides por pantalla.

Por cierto... ¿estas seguro de querer terminar y ser programador?

NotaPublicado: Mar Nov 20, 2007 0:17 am
por tonyc4
sip, hazle caso a bender.

que error te da al compilar?? leer los errores siempre ayuda mucho.

NotaPublicado: Mar Nov 20, 2007 0:21 am
por mariofuenla
si necesitas cualquier cosa pregunta que te vamos a ayudar en lo que podamos (yo por lo menos) que a mi tb me costó sacarmela...jeje

me decanto más por el void main () ya que si no recuerdo mal el int main(int argc, char *argv[]) es para cuando le pasas algo por parametro al programa (argc es el numero de parametros que recibes y argv la lista de parametros)

saluds y suerte

NotaPublicado: Mar Nov 20, 2007 0:29 am
por a100rouge
Donde falla??

En ejecución o en compilación???

QUe es número perfecto, jejjejje??

NotaPublicado: Mar Nov 20, 2007 0:34 am
por nh4
Tio dinos donde falla o en que linea te da el error puede ser un error de estructura o de la sintesis del programa la verdad es que yo soy mas de ensamblador....

NotaPublicado: Mar Nov 20, 2007 0:34 am
por OST_NeoX
if (num1&aux==0)
{
suma=suma+aux;
}

Creo que por ahi van a ir los tiros.

Si quieres sacar el resto de una division entre num1 y aux, entonces es un %, no un &

En todo caso no recuerdo exactamente que hace el & en C, creo que es para referirse a un puntero, pero no estoy seguro. Y en esa sentencia el poner && tampoco tiene mucho sentido, asi que supongo que querrias poner %

Eso seria en cuanto a un posible error de sintaxis. Con respecto al resto, estoy igual que a100rouge.

NotaPublicado: Mar Nov 20, 2007 1:23 am
por des1234
OST_NeoX escribió:if (num1&aux==0)
{
suma=suma+aux;
}

Creo que por ahi van a ir los tiros.

Si quieres sacar el resto de una division entre num1 y aux, entonces es un %, no un &

En todo caso no recuerdo exactamente que hace el & en C, creo que es para referirse a un puntero, pero no estoy seguro. Y en esa sentencia el poner && tampoco tiene mucho sentido, asi que supongo que querrias poner %

Eso seria en cuanto a un posible error de sintaxis. Con respecto al resto, estoy igual que a100rouge.


Muchisimas GRACIAS tio!! El programa no fallaba, sino que claro, ahi cogia un '&' en vez de un '%' (se me escurrio el dedo y pulse equivocadamente al picar el código) y no hacia el resto de la división!!

Me ha sorprendido ver cuanta ayuda he recibido en este post! Sois la reostia en serio!!

os quiero joder!! :cry: :cry: MUCHAS GRACIAS!!

NotaPublicado: Mar Nov 20, 2007 9:56 am
por Willosby
Y yo pensando que C++ significaba "Comer mucho mucho"

Bueno, otra vez será

:meparto:

NotaPublicado: Mar Nov 20, 2007 11:08 am
por Davilinho
Willosby escribió:Y yo pensando que C++ significaba "Comer mucho mucho"

Bueno, otra vez será

:meparto:


:tap:


:lol:


Para cualquier consulta de Java, Pl/sql, oracle... no dudes en preguntar ;)

NotaPublicado: Mar Nov 20, 2007 11:14 am
por OST_NeoX
thunderlex escribió:
OST_NeoX escribió:if (num1&aux==0)
{
suma=suma+aux;
}

Creo que por ahi van a ir los tiros.

Si quieres sacar el resto de una division entre num1 y aux, entonces es un %, no un &

En todo caso no recuerdo exactamente que hace el & en C, creo que es para referirse a un puntero, pero no estoy seguro. Y en esa sentencia el poner && tampoco tiene mucho sentido, asi que supongo que querrias poner %

Eso seria en cuanto a un posible error de sintaxis. Con respecto al resto, estoy igual que a100rouge.


Muchisimas GRACIAS tio!! El programa no fallaba, sino que claro, ahi cogia un '&' en vez de un '%' (se me escurrio el dedo y pulse equivocadamente al picar el código) y no hacia el resto de la división!!

Me ha sorprendido ver cuanta ayuda he recibido en este post! Sois la reostia en serio!!

os quiero joder!! :cry: :cry: MUCHAS GRACIAS!!


De nada hombre. Ya que has cometido el error de ser informatico, los informaticos del foro te echamos un cable en lo que haga falta xD.

NotaPublicado: Mar Nov 20, 2007 12:08 pm
por Somi
Y yo que pensaba que era canal plus porno........ :meparto:

NotaPublicado: Mar Nov 20, 2007 12:17 pm
por Willosby
Somi el Canal plus ese es C+x

NotaPublicado: Mié Nov 21, 2007 9:37 am
por bender
Bueno, me alegro de que hayas podido solucionarlo :D

Ahora, pregunta para nota, sabes porque el lenguaje se llama C ?? (es más fácil de lo que parece)

NotaPublicado: Mié Nov 21, 2007 9:48 am
por meiker_C4
Aun asi, thunderlex, esto es C: y no C++. Usease C estructurado.

Para poder aprobar aunque este programa estaba bien facil y te lo ponen en todos los institutos de este pais, ejjejejje, no deberias desarrollar las funciones dentro del propio programa.


Te explico: Si tu profesor X, te pide calcular "Y" numeros primos, Lo que deberias hacer para que tu programa siempre este bien es hacer los siguiente.

Perdir datos

LLamara a la funcion "Y" numeros primos

Mostrar resultado

Funcion Y numeros primos

Con un programa asi nunca te pueden poner mal el ejercicio solo bajar nota en caso de que la funcion este mal. Dado que el programa en si esta totalmente bien escrito.

Con esto haras programas modulares y podras crear tus propias librerias .h y asi si te piden un programa que calcule cualquier cosa y ya lo hiciste en el pasado solo tienes que incluir tu libreria y llamarla al principio del mismo.

Un saludo y mucha suerte.

;)

NotaPublicado: Jue Nov 22, 2007 16:50 pm
por SiL
thunder, si en el main no devuelve ningun tipo, pon en vez de tipo entero "int", un void que no devuelve na... a ve si t sirve d ayuda, k yo solo toy en segundo jejeje.. m kdan algunas asignaturas mas.. suerte.

NotaPublicado: Jue Nov 22, 2007 17:42 pm
por des1234
meiker_C4 escribió:Aun asi, thunderlex, esto es C: y no C++. Usease C estructurado.

Para poder aprobar aunque este programa estaba bien facil y te lo ponen en todos los institutos de este pais, ejjejejje, no deberias desarrollar las funciones dentro del propio programa.


Te explico: Si tu profesor X, te pide calcular "Y" numeros primos, Lo que deberias hacer para que tu programa siempre este bien es hacer los siguiente.

Perdir datos

LLamara a la funcion "Y" numeros primos

Mostrar resultado

Funcion Y numeros primos

Con un programa asi nunca te pueden poner mal el ejercicio solo bajar nota en caso de que la funcion este mal. Dado que el programa en si esta totalmente bien escrito.

Con esto haras programas modulares y podras crear tus propias librerias .h y asi si te piden un programa que calcule cualquier cosa y ya lo hiciste en el pasado solo tienes que incluir tu libreria y llamarla al principio del mismo.

Un saludo y mucha suerte.

;)


Yo lo haria con uso de funciones, esta claro, pero estamos en el primer trimestre, y aun el profesor no lo ha explicado, por lo que no permite hacerlo con funciones. Yo tengo la ventaja de que como soy repetidor, seria capaz de hacerlo con funciones :lol: , pero te vuelvo a repetir que el profesor no quiere, además que es un puto tocapelotas y no hay que llevarle la contraria.

NotaPublicado: Jue Nov 22, 2007 17:56 pm
por paquedo
bender escribió:Bueno, me alegro de que hayas podido solucionarlo :D

Ahora, pregunta para nota, sabes porque el lenguaje se llama C ?? (es más fácil de lo que parece)



Si no recuerdo mal, es porque primero hicieron un lenguaje que lo llamaron A, luego fue B y el bueno se quedó con el nombre "C"

NotaPublicado: Jue Nov 22, 2007 18:25 pm
por bender
paquedo escribió:

Si no recuerdo mal, es porque primero hicieron un lenguaje que lo llamaron A, luego fue B y el bueno se quedó con el nombre "C"


Minipunto y punto para paquedo!! :D

NotaPublicado: Vie Nov 23, 2007 9:03 am
por meiker_C4
Thunder ya decia yo que algo raro tenia que haber.

Mucha suerte ;)