Ну, у меня есть этот простой код, он спрашивает у пользователя, сколько номеров он хочет сохранить, затем он запрашивает цифры, каждый раз, когда пользователь записывает номер, программа печатает уже написанные цифры и он сортирует числа от самого низкого до самого высокого.C program keep crashing
Проблема заключается в том, что пользователь говорит программе, чтобы сохранить более 9 номеров, программы просто останавливаются, если пользователь хочет сохранить 8 или меньше номеров, он отлично работает. я не знаю, Что происходит, я ценю вашу помощь
Переменные и другие термины основаны на моем языке, испанский, вот некоторые переводы:
функции guardaNum: сохраняет число в массиве
функция ОРДЕН: номер SORT массива
функция imprime: печатает массив со
Контадора: счетчик
cant: количество, которое пользователи хотят сохранить
Спасибо за помощь!
#include <stdio.h>
int guardaNum(int *pnum,int lista[],int *pcontador);
int ordena(int lista[],int *pcontador);
void imprime(int lista[],int *pcant);
int main(void)
{
int cant, num, *pnum, lista[cant], i,contador,*pcontador ;
printf("Ingrese la cantidad de numeros que desea agregar a la lista: \n");
scanf("%d", &cant);
for(i=0;i<cant;i++)
{
lista[i]=-99;
}
for(i=0;i<cant;i++)
{
printf("Ingrese un Numero: ");
scanf("%d",&num);
pnum=#
contador=i;
pcontador=&contador;
guardaNum(pnum,lista,pcontador);
ordena(lista,pcontador);
imprime(lista,pcontador);
}
}
int guardaNum(int *pnum,int lista[],int *pcontador)
{
lista[*pcontador]=*pnum;
return 0;
}
int ordena(int lista[], int *pcontador)
{
int i,j, temp;
for(j=0;j<*pcontador;j++)
{
for(i=0;i<*pcontador;i++)
{
if(lista[i]>lista[i+1])
{
temp=lista[i+1];
lista[i+1]=lista[i];
lista[i]=temp;
}
}
}
}
void imprime(int lista[],int *pcontador)
{
int i;
for(i=0;i<=*pcontador;i++)
{
printf("%d\n",lista[i]);
}
}
Вы использовали отладчик? Если нет, почему бы и нет? –
Когда вы создаете массив 'lista', вы используете неинициализированную переменную' cant'. Вы должны сначала задать количество чисел, а затем выделить достаточное количество памяти для хранения чисел. http://linux.die.net/man/3/malloc – koopajah
Нет, я не знаю, как это использовать, я должен научиться этому в этом семестре, но не сейчас – Rafaalvfe