[ Foro de C ]

Trabajar arreglos en c

24-Nov-2020 18:46
Invitado (An?mona An?nima)
1 Respuestas

Soy nueva programando...
Estoy queriendo hacer una actividad en c con arreglos donde tengo 100 lugares y el conjunto de numeros en el arreglo empieza desde dos, no he podido hacer eso porque desde un principio el programa no me muestra 100 espacios:


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {

    int arreglo[100];
    float x= 0;
    
    for(x>2;x<=100;x=x+1){
    printf("%d\n",arreglo[x]);
    }
    
    return (0);
}


//Esto lo hice con un arreglo de 5 espacios y me sacaba 6 números. Puede alguién aclarame porqué estoy mal y qué debería hacer?
De antemano gracias


10-Dec-2020 21:53
Invitado (didac)

hola anonima, te comento:


#include <stdio.h>    // para el printf
#include <stdlib.h>   // no lo usas, puedes quitarlo

int main(int argc, char** argv) {   // correcto

   int arreglo[100];                
   // reservas 100 lugares sin inicializarlos
   // contiene datos aleatorios
   
   float x= 0;    // para un contador, float no sirve
   // float y double son para números enormemente grades o pequeños
   // y para números decimales ej 1.2 
   // además: ocupa mas, es mas lento y no sirve para arreglo[x]
   
   for(x>2;x<=100;x=x+1){           
   // for(inicialización; comparación; final de bucle)
   // x>2 no inicializa nada, quizás x=2 es lo que quieres
   // x<=100 en este caso no seria correcto porque se 
   // empieza a contar desde cero, si cuentas el cien son 
   // ciento uno y no has reservado tanto, x<100 seria correcto
   // x=x+1 es correcto, pero x++ es mas el estilo de c

      printf("%d\n",arreglo[x]); // si x es int o char seria correcto
      // solo que no has puesto nada en el arreglo, así contiene basura
   }
   
   return (0); // correcto, el parentesis no hace falta
}
-----------------------------------------------------


seria algo así:


/* rellenar y visualizar array */

#include <stdio.h>               // biblioteca para printf

#define TAM_A  100               // tamaño del array
#define N_INI  2                 // número de inicio del array

int main(void)                   // inicio del programa
{
   int arreglo[TAM_A];           // reservo 100 casillas contiguas

   for(int i=0; i<TAM_A; i++)    // repito cien veces, de 0 a 99
   {
      arreglo[i]=i+N_INI;        // introduzco dato en casilla
      printf("%d ", arreglo[i]); // visuaizo casilla
   }
   putchar('\n');                // nueva línea
   
   return 0;                     // finalización correcta
}


aqui https://linkode.org/#WfppDoB6OsCCwQeuP6Zpe
puedes ver mejor el código con colores y tabulado, parece mas claro

saludos ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)