涉及的相关知识点描述,程序代码、程序运行结果,

写一个函数用选择法将n个整数由大到小排序,主函数通过键盘输入10个整数,然后通过函数调用实现排序。"

先看截图:

img

参考如下:


#include<stdio.h>

// 从大到小排序
void sort(int a[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(a[j]>a[k])    // 从小到大,只需要 a[j] < a[k]
                k=j;
        if(k!=i)
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    sort(a, n);

    printf("Sorting results:");
    for (int i = 0; i < n; i++) {
        printf("%4d", a[i]);
    }

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7768533
  • 你也可以参考下这篇文章:【4】编写函数,用选择法对数组中的10个数按照从小到大得顺序排序,在主函数调用此函数
  • 除此之外, 这篇博客: 第11届蓝桥杯大学C组中的 5,小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。请问在整数 1 至 n 中,洁净数有多少个? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    【输入格式】
    输入的第一行包含一个整数 n。
    【输出格式】
    输出一行包含一个整数,表示答案。
    【样例输入】
    30
    【样例输出】
    18

    【评测用例规模与约定】
    对于 40% 的评测用例,1 <= n <= 10000。
    对于 80% 的评测用例,1 <= n <= 100000。
    对于所有评测用例,1 <= n <= 1000000。

    
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int n=sc.nextInt();
      
      //判断是否符合要求
      if(n<1||n>1000000){
       return;
      }
      //存储总的纯净数
      int sum=0;
      
      //把输入的数字转换为String 类型的值
      for (int i = 1; i <=n; i++) {
       String str=String.valueOf(i);
       for (int j = 0; j <str.length(); j++) {
        int number=Integer.valueOf(String.valueOf(str.charAt(j)));
        if(number==2){
         break;
        }
        if(j==str.length()-1){
         sum++;
        }
       }
      }
      System.out.println(sum);
      }
     }
  • 您还可以看一下 李月喜老师的企业微信开发第三方应用开发篇课程中的 解决方案录入,应用搜索可见,应用上架概述小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    实际上,以上的解决方案是正确的,并且已经给出了函数和主程序的代码。这个问题是一个经典的排序算法问题,可以使用选择排序的方法解决。函数中的代码使用了两层嵌套循环来进行比较,然后交换元素的位置。主程序中,使用了 input() 函数和 map() 函数来读入数字,然后调用函数对它们进行排序,并且使用 print() 函数输出排序后的结果。

    注意事项:

    • 在 input() 函数中,输入的数字应该用空格隔开,并且不需要在最后加上空格或换行符。
    • 在使用 map() 函数时,应该将返回的值转换为 list 类型。
    • 在调用函数时,必须传入一个 list,否则会出现类型错误。
    • 函数应该返回排序后的结果,而不是打印它们。
    • 在使用 print() 函数输出结果时,应该使用适当的格式,以便结果易于阅读,并且包含有用的信息。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^