C/Visual C - Imprimir todos los numeros de un array hasta que se cumpliese una condición

 
Vista:
sin imagen de perfil

Imprimir todos los numeros de un array hasta que se cumpliese una condición

Publicado por Manuel (1 intervención) el 25/04/2016 19:17:51
Hola, hace poco me interesé por la programación, estaba intentando hacer un código con un array y que el ordenador imprimiese todos los numeros de este hasta que se cumpliese una condición. No se que estoy haciendo mal, porque no funciona bien. el código que estoy usando es este :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int a[5];
    int numero;
    a[0]=3;
    a[1]=4;
    a[2]=67;
    a[3]=6;
    a[4]=9;
 
    while ( numero!=5){
        printf("%i", a[numero]);
        numero++;
    }
 
    return 0;
}
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
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Imprimir todos los numeros de un array hasta que se cumpliese una condición

Publicado por agustin (272 intervenciones) el 26/04/2016 10:35:13
Eso que haces no tiene sentido.
1. número no está inicializado.
2. Si inicializar número por ejemplo a 60 se desborda el array y leería basura y no se sabe que pasaría.
3. Si por ejemplo número vale 0 leería todo el array pero no se detendría al llegar al final ya que no existe el valor 5 en el array y acabarás desbordando el array.
Para estos casos es mejor un for.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
#define TAM 5
 
int main()
{
    int i;
    int a[TAM]={3,4,67,6,9};
 
    for ( i=0; i<TAM && a[i] !=5; i++)
        printf("%i", a[i]);
 
    return 0;
}
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
sin imagen de perfil

Imprimir todos los numeros de un array hasta que se cumpliese una condición

Publicado por Rafael (17 intervenciones) el 29/04/2016 19:36:55
Pues bueno yo estoy comenzando en esto de la programacion igual , pues mi preferencia es C++ pero bueno son casi similares.
y segun lei en un libro un ciclo while es igual que un ciclo FOR. si encuentro el texto concreto lo muestro pero de antemano aca esta mi colaboracion para que modifiques esto en C y veas su funcionamiento.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream> // libraria estandar
 
#define j 5 // definimos J como 5 para el 
// uso de nuestro array/arreglo.
 
using namespace std;
//directivas para usar cin/cout 
 
int main(int argc, char *argv[]) {
 
 
	int iterador = 0; // inicializamos un iterador
	//y le asignamos un valor 0 para que no guarde basura.
	int Arreglo[j] = {3,4,67,6,9};
	//definimos nuestro arreglo.
 
 
 
 
	while (Arreglo[j]<5)
	// detallamos nuesta condicion
 
	{
		cout <<"-"<<Arreglo[iterador];
		//imprimimos en pantalla nuestros numeros.
 
		iterador++;
		//aumentamos el iterador con cada vez
		// que se analiza la condicion.
	}
 
 
	return 0;
}
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
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Imprimir todos los numeros de un array hasta que se cumpliese una condición

Publicado por agustin (272 intervenciones) el 30/04/2016 01:02:09
En ese código pasaría lo mismo que en el suyo.
Una aclaración, un bucle for y un while son muy similares, es más, todo lo que se hace con uno se podría hacer con el otro. ¿cuando usar uno y cuando el otro?
Si sabes el rango a recorrer usa for y si no lo sabes usa while. Por ejemplo, un caso claro para un while:
1
2
3
4
while(valor !=0){
   printf("Introduce un numero: ");
   scanf("%d",&valor);
}
Podría hacerse con un for:
1
2
3
4
for (;valor!=0;){
   printf ("Introduce un numero: ");
   scanf ("%d",&valor);
}
pero el más correcto para este caso es el del while.
Caso claro de uso de for:
1
2
for (i=0;i <5;i++)
   printf ("%i\n", i);
¿Se puede con while? Por supuesto:
1
2
3
4
5
i=0;
while (i <5){
   printf ("%d\n",i);
   i++;
}
Pero el más correcto en este caso sería el for porque sabemos exactamente el rango a recorrer.
Cuando leí lo que pedía lo entendí mal, lo único que necesita es inicializar número a 0 antes de entrar al bucle while.
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