好吧,我有这个简单的代码,它询问用户他想保存多少个数字,然后询问数字,每次用户输入数字时,程序都会打印他已经写过的数字,并将数字从最低到排序最高。
问题是当用户告诉程序保存超过 9 个数字时,程序就会停止,如果用户选择保存 8 个或更少的数字,它就可以完美运行。我不知道发生了什么,我会感谢你的帮助
变量和其他术语基于我的语言,西班牙语,这里有一些翻译:
函数guardaNum:保存数组中的数字
函数ordena:对数组的数字进行排序
函数 imprime:打印数组
contador:是一个计数器
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]);
}
}