Reescribiendo tus errores:
#include
#include
int main ()
{
int n, i;
printf (“Ingrese el tamaño de la matriz”);
scanf (“% d”, & n);
int * temp;
temp = (int *) malloc (n * sizeof (int));
para (i = 0; i <n; i ++)
{
printf (“Ingrese los elementos de la matriz”);
scanf (“% d”, & temp [i]); // scanf (“% d”, temp [i]);
- ¿Qué debo hacer para autoaprendizaje de ciencias de la computación con interés en inteligencia artificial y ciencias de la computación teóricas?
- ¿Cuál es la forma más eficiente de recoger pelotas de tenis en una cancha?
- ¿Qué es un problema de horario en la programación? ¿Cómo se convierte en un problema NP difícil?
- ¿Cómo funciona el algoritmo de búsqueda de ruta de StarCraft II?
- ¿Cuáles son algunos métodos de diagnóstico utilizados en un algoritmo de agrupamiento?
}
printf (“Los elementos de la matriz son: \ n”);
para (i = 0; i <n; i ++)
{
printf (“% d”, temp [i]);
}
}
El error en scanf () fue que estaba tratando de poner valores en la ubicación almacenada en temp + i que puede ser basura.
Scanf () necesita la dirección de la variable donde necesita almacenar los datos, no la variable en sí.
En segundo lugar, solo imprime temp [i] en la última instrucción sin bucle, por lo que imprime temp [n + 1], es decir, el último valor almacenado en i desde el bucle anterior, que es un error lógico al acceder a un elemento fuera de límite (aunque C admite esta declaración, otros lenguajes como Java y C # darán una excepción)
Espero que ayude.