A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. main.m
  3. 输入6个字符串(仅含字母和数字),字符串排序并输出?
  4. 分析
  5.     字母和数字怎么进行排序?字母其实就是数字,它有ASCII值
  6.     用个字符串来接收,控制台输入的字母和数字!
  7. 注意:
  8.     OC中NSArray可以创建任意类型的数组
  9. */
  10. #import <Foundation/Foundation.h>
  11. char *minXuanZhe(char ziF[], int len);
  12. char *maxMaoPao(char ziF[],int len);
  13. int main(int argc, const char * argv[]) {
  14.     char temp[6] = {0};
  15.     printf("请输入6个字符\n");
  16.     scanf("%s",temp);
  17.     int len = sizeof(temp);
  18.     //选择排序,从小到大
  19. //    minXuanZhe(temp,len);
  20.     //冒泡排序,从大到小
  21.     maxMaoPao(temp,len);
  22.     printf("%s\n",temp);
  23.     return 0;
  24. }
  25. //冒泡排序(大到小)
  26. char *maxMaoPao(char ziF[],int len){
  27.     int temp  = 0;
  28.     for (int i = 0; i<len; i++) {
  29.         for (int j = 0; j<len-i; j++) {//两个相邻的元素,进行比较!最值往后
  30.             if(ziF[j]<ziF[j+1]){
  31.                 temp = ziF[j+1];
  32.                 ziF[j+1] = ziF[j];
  33.                 ziF[j] = temp;
  34.             }
  35.         }
  36.     }
  37.     return ziF;
  38. }
  39. //选择排序(从小到到)
  40. char *minXuanZhe(char ziF[], int len){
  41.     int temp = 0;
  42.     for (int i = 0; i<len; i++) {//外层循环
  43.         int minIndex = i;
  44.         for (int j =i; j<len; j++) {//内层循环个数
  45.             if(ziF[minIndex]>ziF[j]){//找出最小值的下标
  46.                 minIndex = j;
  47.             }
  48.         }
  49.         //交换
  50.         temp = ziF[minIndex];
  51.         ziF[minIndex] = ziF[i];
  52.         ziF[i] = temp;
  53.     }
  54.     return ziF;
  55. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马