当前位置:   article > 正文

21 - 编写两个函数,将n个正整数中的素数按升序排序。函数1功能:判断一个数是否为素数。函数2功能:对数组进行排序。输入分2行:第一行为n的值,第二行为n个整数。要求输入输出均在主函数中完成。_编写两个函数,将 n 个正整数中的素数按升序排序。函数功能分别是:判断一个数是否为素数,以及对数组进

编写两个函数,将 n 个正整数中的素数按升序排序。函数功能分别是:判断一个数是否为素数,以及对数组进行排序。输入分2行:第一行为 n 的值,第二行为 n 个整数。要求输入输出均在主函数中完成。
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include<stdio.h>
  4. #include<math.h>
  5. int func1(int a)
  6. {
  7. int k, i, b;
  8. k = sqrt(a);
  9. for (i = 2; i <= k; i++)
  10. if (a % i == 0)break;
  11. if (i > k)//i为什么会大于k呢(循环停止的条件决定的,i是整数,素数的sqr()是小数,循环截止条件会大于这个小数)
  12. b = 1;
  13. else
  14. b = 0;
  15. return b;
  16. }
  17. int func2(int a[100], int n)
  18. {
  19. int i, j, m;
  20. for (i = 0; i < n; i++)
  21. for (j = 0; j < n - 1 - i; j++)
  22. if (a[j] > a[j + 1])
  23. {
  24. m = a[j];
  25. a[j] = a[j + 1];
  26. a[j + 1] = m;
  27. }
  28. return 0;
  29. }
  30. int main()
  31. {
  32. int n, a[100] = { "\0" }, i;
  33. printf("input\n");
  34. scanf("%d", &n);
  35. for (i = 0; i < n; i++)
  36. scanf("%d", &a[i]);
  37. func2(a, n);
  38. for (i = 0; i <= n; i++)
  39. if (func1(a[i]) == 1 && a[i] != 1 && a[i] !
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/328715
推荐阅读
相关标签
  

闽ICP备14008679号