AYUDA en programa C K no me sale ni patras

Carcass

Es "a ver".

SeiYa

Toma, yo aporto mi granito de arena y tb le hago:

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

int Sumarara(float);

void main ()
{
int iNumero;
float nfResultado;
clrscr();
printf("Introduce el numero: ");
scanf("%d", &iNumero);
nfResultado=Sumarara(iNumero);
printf("El resultado es: %0.2f", nfResultado);
getch();
}

float Sumarara(int nfNum)
{
float nfSuma=0;
for(int i=0;i<=iNum;i++)
{
nfSuma+=1/(1+i);
}
return nfSuma;
}

Carcass

#32 Vaya scanf más raro... ¿no será "scanf("%d", &iNumero);"? ;-P Y %0.2f en el printf

Foxandxss

Os estais cebando con el chaval, no sabe buscar jejee, ha preguntado esto en 2 foros como minimo ejejejej.

PD: Carcass tu dices q foreach es lo mejor, pero yo aun no aprendi a usarlo(C#) jeje.

Un saludo.

SeiYa

Va si, tienes razon, es que estoy con c++ y c lo tengo olvidado :(

H-K

int Sumarara(float);
float Sumarara(int nfNum)

{

}

¿Comor?

Y ya que estamos : ¿la división entre enteros no devolvía un entero? ¿no hay que hacer un cast explícito ahí?...

¡ y main devuelve un int ! :P

LOc0

/\
||
||

-¿Qué tiene que ver un cast con la división por cero :O :O??
EDITO: SORRY, no sé en qué puñetas estaba pensando ¬ ¬...

-En C main puede devolver void sin miedo xD...
EDITO: Sí, gcc da warning ;)

Salu2 ;)

H-K

¿Quién ha mencionado la división por cero? En serio, yo no he sido. Yo sólo he dicho que un entero partido por otro entero devuelve un entero, que es la parte entera de la división de ambos. Si se quiere obtener el cociente con decimales hay que convertir a real ( o eso o usar un valor real en la división ).
Y ok, en cuando al valor de retorno de main, me dejé llevar por el estándar C++, en C sí está permitido :P sorry ... :| (puto C++...)

Carcass

#37 Si no ha dicho nada de división por cero. Dice que hay que convertir los números a float o double antes de dividirlos, o divide enteros y se pierde una burrada de precisión...

H-K

Y tan burrada. Como que la división entera 1/2 sería 0...

S

zenture@amsterdam zenture $ cat main.c
void main ()
{

}
zenture@amsterdam zenture $ gcc -o main main.c
main.c: In function main':
main.c:2: warning: return type of
main' is not `int'

H-K

Si, si, ya se que el gcc es muy especialito, pero mira esto:
http://homepages.tesco.net/J.deBoynePollard/FGA/legality-of-void-main.html
El caso es que es el único sitio donde lo dice, así que la solución para quedarse tranquilos es pillarse el documento ISO/IEC 9899:1999 en cuestión... ¿Alguien tiene 18 dólares? (creo q paso, haré int main como toda la vida).

AvariciA

void main(){}

no es ANSI C. gcc muestra el warning, si los tienes activos. Incluso si estan incluida la opcion -ansi no compila. Por no compilar no compilan ni los comentarios de C++ con doble barra. //

H-K

No, no es ANSI C, pero por lo visto sí es ISO C

Extracto del ISO/IEC 9899:1999

5.1.2.2.1 Program startup
1 The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char argv[]) { / ... */ }
or equivalent; <B>or in some other implementation-defined manner</B>.

Pero vamos, que yo seguiré como si no lo hubiera leído (más que nada porque es un tocho y paso de seguir leyéndolo :P). A piñón con int main (...)