Problemas de Arreglos
Publicado por Sebastián (31 intervenciones) el 01/12/2016 05:22:45
Hola con todas, les agradecería mucho si me ayudan con el siguiente ej:
"Elaborar un programa que lea n números y los almacene en un arreglo, n debe cumplir que n <= 500. Los números son leídos desde el teclado hasta que se digite 'N' cuando aparece el mensaje:
"Desea continuar (S/N)?"
El programa debe comparar el contenido de cada uno de los elementos con el valor de 0. Si un elemento tiene un valor de 0, dicho valor debe desplazarse hacia la derecha del arreglo, permitiendo de esta manera que al final del proceso, todos los números diferentes de 0 estén almacenados al comienzo del arreglo en el mismo orden en el que se leyeron, y todos los números 0 estén almacenados al final del arreglo.
Por ejemplo, si se tiene el siguiente arreglo:
2 3 4 0 9 0 7 0 8 0
al final del proceso el mismo arreglo quedará:
2 3 4 9 7 8 0 0 0 0 "
Mi pregunta es como puede generar la parte del "Desea continuar (S/N)", he estado intentando con bandera y do while pero la verdad no obtengo el resultado esperado, les agradezco su ayuda .
"Elaborar un programa que lea n números y los almacene en un arreglo, n debe cumplir que n <= 500. Los números son leídos desde el teclado hasta que se digite 'N' cuando aparece el mensaje:
"Desea continuar (S/N)?"
El programa debe comparar el contenido de cada uno de los elementos con el valor de 0. Si un elemento tiene un valor de 0, dicho valor debe desplazarse hacia la derecha del arreglo, permitiendo de esta manera que al final del proceso, todos los números diferentes de 0 estén almacenados al comienzo del arreglo en el mismo orden en el que se leyeron, y todos los números 0 estén almacenados al final del arreglo.
Por ejemplo, si se tiene el siguiente arreglo:
2 3 4 0 9 0 7 0 8 0
al final del proceso el mismo arreglo quedará:
2 3 4 9 7 8 0 0 0 0 "
Mi pregunta es como puede generar la parte del "Desea continuar (S/N)", he estado intentando con bandera y do while pero la verdad no obtengo el resultado esperado, les agradezco su ayuda .
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{
int ANum[100] = {}, n;
int aux;
int j,i;
char bandera='N';
int ban = 0;
printf("Ingrese la dimensión A: ");
scanf_s("%d", &n);
while (n > 500)
{
printf("Ingrese la dimension : ");
scanf_s("%d ", &n);
}
for (i = 0; i < n; i++)
{
printf("Ingrese un valor:\n");
scanf_s("%d", &ANum[i]);
if (ANum[i] == 'N')
{
printf("Desea continuar? (S/N)\n");
scanf_s("%c", &bandera);
if (bandera == 'N')
{
system("cls");
ban = 1;
break;
printf("Adios\n");
return -1;
}
}
}
for (int i = 1; i < n; i++)
{
for (j = 0; j < n - 1; j++)
{
if (ANum[j] == 0)
{
aux = ANum[j];
ANum[j] = ANum[j + 1];
ANum[j + 1] = aux;
}
}
}
if(ban==0)
{
printf("\nEl arreglo es:\n");
for (int i = 0; i < n; i++)
{
printf("%d ,", ANum[i]);
}
}
else
{
system("cls");
printf("adios\n");
}
_getch();
}
Valora esta pregunta
0