SoloCodigo
		Programación General => C/C++ => Mensaje iniciado por: Arsys en Lunes 25 de Agosto de 2003, 16:17
		
			
			- 
				Este es el programa en cuestión:
 /* Este programa pide el numero de habitaciones de una casa y posteriormente
pide las dimensiones (en metros cuadrados) de cada habitación, para calcular 
después los metros cuadrados totales de la casa */
#include <stdio.h>
int main(int argv, char **argc)
{  
  int habitaciones, m2, i;
  
  printf("Introduzca el numero de habitaciones: ");
  scanf("%d", &habitaciones);
  
  for(i=1; i<=habitaciones; i++);
  {
    printf("nIntroduzca las dimensiones de la habitacion %d en metros cuadrados: ", i);
    scanf("%d", &m2);
  }
  
  printf("Los metros cuadrados totales son %dnn", m2);
  
  system("pause");
}
    
 
Pues bien, al ejecutar el programa en lugar de sustituir el especificador de formato %d por el número i del for, me lo sustituye por el numero que se introduce de habitaciones + 1.
Es decir, que si io le digo que el numero de habitaciones es 5, después cuando pide los metros cuadrados me los pide de la habitación 6.
A ver si a alguien se le ocurre por que puede ser, porque io he estado dándole vueltas y no ha habido manera de entender porque hace eso . . .  :ayuda:
Saludos
			 
			
			- 
				Hola amigo, bueno, no es mucho dell tiempo en que dispongo en este momento, asi que te pondre el codigo que he copiado de aqui y he mejorado, este codigo funciona a la perfeccion...lo he compilado con el Borland C++ 3.1. Bueno Saludos y mas tarde paso a explicarte. 
#include <stdio.h>
#include <conio.h> // para el uso de getch();
int main(int argv, char **argc)
{
int habitaciones, m2, i, mtotales=0;     //para metros totales;
printf("Introduzca el numero de habitaciones: ");
scanf("%d", &habitaciones);
for(i=1; i <= habitaciones; i++)
{
printf("nIntroduzca las dimensiones de la habitacion %d en metros cuadrados: ", i);
scanf("%d", &m2);
mtotales = mtotales + m2; // Aqui sumo los metros cuad.
}
printf("Los metros cuadrados totales son %dnn", mtotales);
getch();      // getch para la pausa
//system("pause");
}
:guitar:
			 
			
			- 
				Cierto, funciona perfectamente.
Además ya he encontrado donde estaba el fallo del for, se me había colado un punto y coma, lo extraño es que el compilador no haya avisado ni nada . . . :think:
De todas formas seguía estando mal porque el resultado final no estaba bien, cosa que también has corregido, muchas gracias :good:
Saludos :hippi:
			 
			
			- 
				Hola, bueno, me alegro que hayas encontrado los errores de tu codigo, yo entre para explicarte los errores que habian, pero bueno....Cualquier cosa que necesites me avisas, SALUDOS y SUERTE. :guitar: