C/Visual C - normal? siempre sale printf ?

 
Vista:

normal? siempre sale printf ?

Publicado por asd (2 intervenciones) el 16/02/2006 00:53:06
#include <stdio.h>

void main(){

int m[10],i;

printf("Numero? ");

for(i=0;i<10;i++)
{
scanf("%d",&m[i]);
}
if (m[i]>50){
printf("Hi ha un numero superior a 50");
}
}

Es normal que simpre salga el printf ultimo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:normal? siempre sale printf ?

Publicado por kero (45 intervenciones) el 16/02/2006 03:30:12
No no es normal. Probe tu programa y me encontre con varias cosas interesantes, por ejemplo que a mi no me hacia el printf final siempre de hecho no me lo hacia nunca y eso es porque en ningin momento recorrias el array para comprobar que hubiera un numero mayor a 50 si no que directamente te fijabas en la posicion final del array ya que la variable i cuando salia del for quedaba con valor 10 y por lo tanto la ultima posicion del array cuando hacias el if. Te solucione eso y otras cosillas que veras en el codigo. Algunas son de puro mañoso que soy y porque se las considera de buen programador.
El codigo:
#include <stdio.h>
#define MAX 50
int main(void){

int m[10],i;

printf("Numero? ");

for(i=0;i<10;i++){
scanf("%i",&m[i]);
}
i = 0;
while(i<10){
if (m[i]>MAX){
printf("Hi ha un numero superior a 50");
}
++i;
}
return(0);
}
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:normal? siempre sale printf ?

Publicado por dsf (1 intervención) el 16/02/2006 10:25:31
hola ,asi pongo 10 nºs menores de 50 y ok pero pongo uno de + de 50 y se para el programa

#include <stdio.h>

void main(){

int m[10],i=0;

printf("Numero? ");

while(i<10){
scanf("%d",&m[i]);
if (m[i]>50)
printf("Hi ha un numero superior a 50");
i++;
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:normal? siempre sale printf ?

Publicado por kero (45 intervenciones) el 16/02/2006 21:59:06
Aca tenes otra version pero mejorada:

#include <stdio.h>
#define MAX 50
int main(void){

int m[10],i=0,r=0,mayor=0;

printf("Numero? ");

for(i=0;i<10;i++){
scanf("%i",&m[i]);
}
while(r<10){
if (m[r]>MAX){
++mayor;
}
++r;
}
if(mayor >= 1){
printf("Hi ha un numero superior a 50");
}
return(0);
}

Para que te ande bien tenes que ponerlo exactamente asi. No le saques ningun corchete ni nada porque si no no se puede garantizar su correcto funcionamiento.
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar