Arreglos en lenguaje C [Resuelto/Cerrado]

señor verde 40 Publicaciones martes, 7 de abril de 2009Fecha de inscripción jueves, 23 de diciembre de 2010 Última intervención - 27 nov 2009 a las 06:34 - Última respuesta:  Mary
- 25 sep 2017 a las 17:51
Hola,
muy buenas noches es urgente necesito que me ayuden:
¿ como almaceno datos en un arreglo mediante printf ?
mi intencion es introducir numeros mediante la consola y que los almacene en un arreglo para despues ordenarlos.
Ver más 
40Publicaciones martes, 7 de abril de 2009Fecha de inscripción jueves, 23 de diciembre de 2010 Última intervención

10 respuestas

thepacmankiller - 10 may 2010 a las 22:25
+135
Vota
2
pues mira yo solucione ese problema de esta manera:
#include<stdio.h>
#include<conio.h>
int main()
{
int x[10];
int i,j,a;
/* Capturando los valores del arreglo */
for (i=0; i <10; i=i+1)
{
printf("De valor de x[%d]:", i+1);
scanf("%d",&x[i]);
}
/* Ordenando el arreglo */
for (i=0; i <10; i=i+1)
for (j=0; j <10; j=j+1)
if ( x[i] < x[j] )
{
a= x[i];
x[i]=x[j];
x[j]=a;
}
/* Desplegando el contenido del archivo */
for(i=0; i <10; i=i+1)
printf("%3d", x[i]);
getch();
return 0;
}


RECUERDA: AGRADECER NO CUESTA NADA
¿Te sirvió esta respuesta?  
+11
Vota
bueno este es lo que yo le entiendo de los areglos del lenguaje c++<gras>
Arreglos

En clase ya conocimos algunos tipos básicos como por ejemplo los tipos char, int y float. El lenguaje C++ permite, además, construir estructuras más complejas a partir de estos tipos básicos.
Una de las construcciones que podemos definir son los arreglos.

Arreglo: Colección ordenada de elementos de un mismo tipo. Ordenada significa que cada elemento tiene una ubicación determinada dentro del arreglo y debemos conocerla para accederlo.

Sintaxis:
Definición de un arreglo:

<tipo> nombre_variable[longitud];

Con esto diremos que nombre_variable es un arreglo de longitud elementos del tipo <tipo>. Cabe destacar que longitud debe ser cualquier expresión entera constante mayor que cero.


Ejemplo:

int a[5]; // Definición de un arreglo de 5 posiciones

void main()
{
int i;
// Pedimos el ingreso de 5 números
for(i=0; i<4; i++) //No olvidar que los arreglos van de 0 a longitud-1
{
cout << Ingrese el elemento Nro: << i <<endl;
cin >> a[i];
}
// Los imprimimos
imprimir(a,5);
}

void imprimir(int b[], int tamano)
{
int i;

for(i=0; i<tamano; i++)
{
cout << Nro: << i <<" "<<b[i]<<endl;
}

}
</gras>
señor verde 40 Publicaciones martes, 7 de abril de 2009Fecha de inscripción jueves, 23 de diciembre de 2010 Última intervención - 28 nov 2009 a las 18:15
+7
Vota
Muchas gracias por tu ayuda al fin pude hacer el programa te dejo el codigo para que veas que tal me quedo y bueno te dejo mi id jodajoda12@hotmail.com para que en un futuro me sigas ayudando ahora tengo que compilarlo en ubuntu si sabes algo dime no vemos bro !!!

/* Programa que almacena en arreglos digitos para despues ser ordenados */
#include <stdio.h>
#define TAMANIO 15 /*define los tamaños de los arreglos*/

void procesa( int resp[] ); /*prototipo de funcion*/
void ordena_arreglo( int a[] ); /*prototipo de funcion*/
void imprime_arreglo( const int a[] ); /*prototipo de funcion*/

int main(){/*la función main comienza la ejecución del programa*/
int respuesta[TAMANIO];
int i, total=0;

printf("\n\tPrograma que almacena en arreglos digitos para despues ser ordenados\n\n\n");

printf("Ingrese los 15 numeros enteros:\n");
for( i=0; i < TAMANIO; i++ ){
printf("\n\t\t\tIntroduzca valor [%d]: ", i);
scanf("%d", &respuesta[i]);
}/*fin de for*/

procesa( respuesta );/*fución qu procesa las respuestas*/

printf("\n\n");
system("pause");
return 0;
}/*fin de la función main*/

void procesa( int resp[] ){/*ordena el arreglo e imprime por pantalla*/
printf("\n\nEl arreglo llamado respuestas desordenado es: \n");
imprime_arreglo( resp );/*muestra el arreglo desordenado*/

ordena_arreglo( resp );/*ordena el arreglo*/

printf("\n\n\nEl arreglo llamado respuesta ordenado es: \n");
imprime_arreglo( resp );/*muestra el arreglo ordenado*/
}/*fin de la función procesa*/

void ordena_arreglo( int a[] ){/*función que ordena un arreglo*/
int pasada; /*contador de pasadas*/
int j; /*contaodr de pasadas*/
int almacena;/*ubicación temporal utilizada para intercambiar los elementos*/

for ( pasada = 1; pasada < TAMANIO; pasada++ ){/*ciclo para controlar el número de pasadas*/
for ( j = 0; j < TAMANIO - 1; j++ ){/*ciclo para controlar el número de comparaciones por pasada*/
if ( a[ j ] > a[ j + 1 ] ){/*intercambia los elementos si no se encuentran en orden*/
almacena = a[ j ];
a[ j ] = a[ j + 1 ];
a[ j + 1 ] = almacena;
}/*fin de if*/
}/*fin del for interno*/
}/*fin del for externo*/
}/*fin de la función ordena_arreglo*/

void imprime_arreglo( const int a[] ){/*muestra el contenido del arreglo (5 valores por línea)*/
int j; /* contador */

for ( j = 0; j < TAMANIO; j++ ){/*muestra el contenido del arreglo*/
if ( j % 5 == 0 ){/* comienza una nueva línea cada 5 valores*/
printf( "\n" );
}/*fin de ifend if*/
printf( "%3d", a[ j ] );
}/*fin de for*/
} /* fin de la función imprime_arreglo */
abemen 30 Publicaciones martes, 24 de noviembre de 2009Fecha de inscripción jueves, 2 de diciembre de 2010 Última intervención - 28 nov 2009 a las 17:09
+6
Vota
Ok, primero que nada debes recordar que todo programa inicia en la funcion main() y en el caso de tu codigo carece de ella, la estructura de un programa en C es el siguiente.

<declaración de archivos de cabecera>
<declaración de constantes y variables globales>
<funciones definidas por el usuario>

<tipo> main(<parametros>)
{ sentencia 1;
sentencia 2;
..
..
..
return <valor a retornar por main>; //en caso de devuelva algo
}

en tu caso seria algo asi:

#include <stdio.h>
#define TAMANIO 4;
void main()
{ int i = 0, numero[TAMANIO];
for (i = 0; i < TAMANIO; i++)
{ printf("\nIntroduzca un valor [%d]:", i); // con esto dices en que casilla del arreglo vas
scanf("%d",numero[i];
}
// por haber declarado a main de tipo void no es necesario devolver nada
}
abemen 30 Publicaciones martes, 24 de noviembre de 2009Fecha de inscripción jueves, 2 de diciembre de 2010 Última intervención - 28 nov 2009 a las 20:36
+6
Vota
no hay problema, bajo linux es relativamente sencillo ya que trae su compilador de c que es el gcc y lo único que hay que hacer es invocarlo, supongamos que tu programa se llama burbuja.c

solo debes decirle al gcc que lo compile

$ gcc burbuja.c -o burbuja

el -o es necesario para decirle el nombre del codigo ejecutable, de lo contrario te creara un a.out en todos los casos que compiles. Luego lo puedes ejecutar diciendole

$ ./burbuja

Exitos.
señor verde 40 Publicaciones martes, 7 de abril de 2009Fecha de inscripción jueves, 23 de diciembre de 2010 Última intervención - 28 nov 2009 a las 21:04
+5
Vota
ok gracias por todo !!!
señor verde 40 Publicaciones martes, 7 de abril de 2009Fecha de inscripción jueves, 23 de diciembre de 2010 Última intervención - 27 nov 2009 a las 21:52
+4
Vota
ok me estas ayudando full mira este codigo:

#define TAMANIO 15

int numero[TAMANIO];
int i;

for( i=0; i < TAMANIO; i++ ){
printf("\nIntroduzca valor: ");
scanf("%d",&numero[i]);
}

necesito que esto se repita 15 veces y que cada valor introducido quede guardado en un solo arreglo no importa el orden el problema es que hasta aqui me quedo despues que lo tenga el resto es facil, ya que haria un ordenamiento mediante el metodo burbuja y listo !!!

muchas gracias si me ayudas con esto !!! imaginate despues que lo tenga listo debo pasarlo para ubuntu!!!!!
abemen 30 Publicaciones martes, 24 de noviembre de 2009Fecha de inscripción jueves, 2 de diciembre de 2010 Última intervención - 27 nov 2009 a las 20:20
+3
Vota
Primero que nada printf es una funcion de escritura en pantalla no es una funcion de lectura por teclado.
Si tu dices
printf("Introduzca un valor");
estas solicitando la escritura de la frase "Introduzca un valor" por consola

Para leer información por consola debes utilizar la funcion

scanf("tipo_variable",&<<nombre_variable>>); //en el caso de caracteres o números
scanf("tipo_variable",<<nombre_variable>>[ubicacion]); //en el caso de arreglos

Ej.

int n;
printf("Introduzca un valor:");
scanf("%d",&n);

char x;
printf("Presione una tecla:");
scanf("%c",&x);

int numero[3];
printf("Introduzca 1er. valor:");
scanf("%d",numero[0]);
printf("Introduzca 2o. valor:");
scanf("%d",numero[1]);
printf("Introduzca 3er. valor:");
scanf("%d",numero[3]);

Puedes revisarte el Help del C para profundizar mas