gpt4 book ai didi

c - 按升序重新排列数组中的数字并在 C 中打印它们

转载 作者:行者123 更新时间:2023-11-30 15:55:02 26 4
gpt4 key购买 nike

到目前为止,我的程序根据用户声明的大小创建了一个数组。然后,程序用 500 到 600 之间的随机数填充该数组,并打印其中的 4 个数字,并创建一个新行以继续打印它们。到目前为止一切正常。在应该按升序重新打印数字的部分出现了问题,它只重新打印了一些数字,而不是以任何顺序。任何有关如何纠正此问题的帮助都将不胜感激。

int main(){
int size;
int j, i;
int temp;
int a=0;
double sum = 0;


printf("Enter size of array ");
scanf("%d", &size);


int* array;
array=malloc(size * sizeof(*array));
int *aPtr = array;

srand(time(NULL));
for (i = 0; i < size; i++){
aPtr[i] =(rand() % 101) + 500;
printf("%d ", aPtr[i]);
a++;
if (a == 4){
printf("\n");
a = 0;
}


}
printf("\n\n\nIn ascending order\n");
for (i = 0; i< size; i++){
for (j = 0; j < size; j++){
if(aPtr[i] > aPtr[j]);
temp=aPtr[i];
aPtr[i]=aPtr[j];
aPtr[j]=temp;
}
printf("%d\n", aPtr[i]);
}

最佳答案

问题是由于 < 符号和 if 语句不在自己的括号中造成的。用于打印的第二个 for 循环也有助于正确打印数组

 printf("\n\n\nIn ascending order\n");
for (i = 0; i < size; i++){
for (j = i+1; j < size; j++){
if(aPtr[i] > aPtr[j]){
temp=aPtr[i];
aPtr[i]=aPtr[j];
aPtr[j]=temp;
}
}
}
for (j = 0; j<size; j++)
printf("%d\n", aPtr[j]);

关于c - 按升序重新排列数组中的数字并在 C 中打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com