当前位置:   article > 正文

2024-2-6-复习作业

2024-2-6-复习作业

1>

要求:

源代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void output(int arr[],int len)
  4. {
  5. for(int i=0;i<len;i++)
  6. {
  7. printf("%d ",arr[i]);
  8. }
  9. puts("");
  10. }
  11. void bubble_sort(int arr[],int len)
  12. {
  13. for(int i=1;i<len;i++)
  14. {
  15. for(int j=0;j<len-i;j++)
  16. {
  17. if(arr[j]>arr[j+1])
  18. {
  19. int t=arr[j+1];
  20. arr[j+1]=arr[j];
  21. arr[j]=t;
  22. }
  23. }
  24. }
  25. output(arr,len);
  26. }
  27. void select_sort(int arr[],int len)
  28. {
  29. for(int i=0;i<len-1;i++)
  30. {
  31. int min=i;
  32. for(int j=i+1;j<len;j++)
  33. {
  34. if(arr[min]>arr[j])
  35. min=j;
  36. }
  37. if(min!=i)
  38. {
  39. int t=arr[min];
  40. arr[min]=arr[i];
  41. arr[i]=t;
  42. }
  43. }
  44. output(arr,len);
  45. }
  46. void straight_insert_sort(int arr[],int len)
  47. {
  48. int t,i,j;
  49. for ( i = 1;i < len;i++)
  50. {
  51. t = arr[i];
  52. for ( j = i - 1;j >= 0 && arr[j] > t;j--)
  53. {
  54. arr[j + 1] = arr[j];
  55. }
  56. arr[j + 1] = t;
  57. }
  58. output(arr,len);
  59. }
  60. //返回基准值下标
  61. int one_sort(int arr[],int low,int high)
  62. {
  63. //确定基准值
  64. int key=arr[low];
  65. //当low==high结束
  66. //循环low<high
  67. while(low<high)
  68. {
  69. while(low<high&&key<=arr[high])
  70. high--;
  71. arr[low]=arr[high];
  72. //
  73. //从low开始比较
  74. while(low<high&&key>=arr[low])
  75. low++;
  76. arr[high]=arr[low];
  77. }
  78. arr[low]=key;
  79. return low;
  80. }
  81. //快速排序
  82. void quick_sort(int arr[],int low,int high)
  83. {
  84. //如果只有一个元素或者没有元素
  85. int len=high+1;
  86. if(low>=high)
  87. return;
  88. //一次排序
  89. int mid=one_sort(arr,low,high);
  90. //递归左边子序列
  91. quick_sort(arr,low,mid-1);
  92. //递归右边子序列
  93. quick_sort(arr,mid+1,high);
  94. }
  95. int main(int argc, char const *argv[])
  96. {
  97. int arr[]={23,24,12,5,33,5,34,7};
  98. int len=sizeof(arr)/sizeof(arr[0]);
  99. printf("After bubble_sort\n");
  100. bubble_sort(arr,len);
  101. printf("After select_sort\n");
  102. select_sort(arr,len);
  103. printf("After straight_insert_sort\n");
  104. straight_insert_sort(arr,len);
  105. printf("After quick_sort\n");
  106. quick_sort(arr,0,len-1);
  107. output(arr,len);
  108. return 0;
  109. }

效果图:

2>

要求:

源代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int DigitSum(int n)
  4. {
  5. if(n==0) return 0;
  6. return n%10+DigitSum(n/10);
  7. }
  8. int main(int argc, char const *argv[])
  9. {
  10. int a=1729;
  11. int sum=DigitSum(a);
  12. printf("n=%d\n",a);
  13. printf("sum=%d\n",sum);
  14. return 0;
  15. }
  16. c

效果图:

3>

要求:

源代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define swap(num) (num = ((num&0x55555555)<<1)+((num&0xaaaaaaaa)>>1))
  4. int main(int argc, char const *argv[])
  5. {
  6. int a=10;
  7. printf("a=%d\n",swap(a));
  8. printf("a=%d\n",swap(a));
  9. return 0;
  10. }

效果图:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/67046
推荐阅读
相关标签
  

闽ICP备14008679号