Ver Mensaje Individual
  #12 (permalink)  
Antiguo 06/02/2010, 01:01
Avatar de Gecast
Gecast
 
Fecha de Ingreso: diciembre-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Problema de Principiante (Lenguaje C)

@Desarah: Muchas gracias... aunque en realidad no sé que sucede, porque pongo los acentos y no me aparecen, en vez de eso, sale un signo mostrando que la letra con acento no logra aparecer. Uso Dev-C ¿Cómo sería eso de cambiar la codificación de carácteres?

Hoy tuve un... digamos "problema" que ya solucione, pero me quedo una duda, código a continuación:

Código C:
Ver original
  1. #include<stdio.h>
  2.  
  3. /* Suma cuadrados.
  4. El programa, al recibir como datos un grupo de enteros positivos, obtiene el
  5. cuadrado de los mismos y la suma correspondiente a dichos cuadrados.*/
  6.  
  7. int main (void)
  8. {
  9.     int num;
  10.     long cua, suc=0;
  11.     printf("Bienvenido\nIngrese un numero entero. - 0 para terminar: ");
  12.     scanf("%d", &num);
  13.     while(num)
  14.     /* Observa que la condición es verdadera mientras el entero es diferente de
  15.     cero.*/
  16.     {
  17.            cua = pow(num,2);
  18.            printf("\n%ld al cuadrado es: %d\n", num, cua);
  19.            suc += cua;
  20.            printf("\nIngrese un numero entero. - 0 para terminar: ");
  21.            scanf("%d", &num);
  22.     }
  23.     printf("\nLa suma de los cuadrados es %ld", suc);
  24.     getch();
  25. }

El problema resultó en que este es el código que copie del libro de donde tomo mis ejercicios, y así como tal, al ejecutar el cuadrado de unos números me dió esto:

1^2 = 1
2^2 = 4
3^2 = 9
4^2 = 16
5^2 = 24?
10^2 = 99?
15^2 = 224?

Lo solucione cambiando el "pow(x,y)" por un "cua = num*num" y volviendo todo entero. ¿Alguien sabe por qué razón sucedió algo así?

Gracias por el apoyo.