gpt4 book ai didi

c - 按降序排列的数组在 C 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:31 24 4
gpt4 key购买 nike

      #include <stdio.h>

int main()

{
int a[100],i,n,j,p;
printf("Enter number of elements:\n ");
scanf("%d",&n);
printf("Enter array:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=1;j<n;j++)
{
if(a[i]>a[j])
{
p=a[j];
a[j]=a[i];
a[i]=p;
}
}
}
printf("The array looks :\n");
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
return 0;
}

除了最小的元素仍然是第一个之外,这工作顺利 :( 当我运行它时它没有错误,但是当我输入 ex. 1,2,3,4,5 的数字时结果是 1 5 4 3 2.

最佳答案

请让您的代码更有条理!

这是它的一个更简洁的版本:

#include <stdio.h>

void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}

void selectionSort(int a[], int n)
{
int i, j;
for (i = 0; i < n; i++)
for (j = i + 1; j < n; j++)
if (a[i] > a[j])
swap(&a[i], &a[j]);
}

main()
{
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);

int a[n], i;
printf("Enter the array:\n");
for (i = 0; i < n; i++) scanf("%d", &a[i]);

selectionSort(a, n);

printf("The array looks like this:\n");
for (i = 0; i < n; i++) printf("%d ", a[i]);
}

关于c - 按降序排列的数组在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261707/

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