我想用降序将数字写入数组x []。例如,我输入数组的长度为3,但数字未列为3,2,1。它写0 0 0.任何人都可以建议我需要做什么?
int main()
{
int x[500000], size, i;
printf("Enter the lenght of the array: ");
scanf("%d", &size);
for ( i = size; i > 0; i-- )
{
printf( "%4d", x[ i ] );
} /* end for */
答案 0 :(得分:0)
您输入数组的LENGTH,但这不提供有关元素值的信息。就像我告诉你的那样:我给你5个数字,然后对它们进行排序。您无法对它们进行排序,因为您不知道元素值。 您获得的值只是内存中的垃圾值。
有点不清楚你真正想做什么。如果你只想获得类似3,2,1的输出,则将printf("%d ", i);
放入for循环(并摆脱数组)。如果你真的想要对一些数据进行排序,那么你需要将数据放入一个数组中,然后实现一个排序算法来对它进行排序。
答案 1 :(得分:0)
只需在代码中添加一行,就会初始化至少要打印的元素:
int main()
{
int x[500000], size, i;
printf("Enter the lenght of the array: ");
scanf("%d", &size);
for ( i = size; i > 0; i-- )
{
x[i] = i; // <<<<<<<<<<<<<< add this line
printf( "%4d", x[ i ] );
}
}
如果您希望所有元素都包含相应的值,则可以执行
int main()
{
int x[500000], size, i;
printf("Enter the lenght of the array: ");
scanf("%d", &size);
// initialize all the elements:
for( i = 0; i < 50000; i++) x[i] = i;
// check just a few:
for ( i = size; i > 0; i-- )
{
printf( "%4d", x[ i ] );
}
}