- /*
- main.m
- 输入6个字符串(仅含字母和数字),字符串排序并输出?
- 分析
- 字母和数字怎么进行排序?字母其实就是数字,它有ASCII值
- 用个字符串来接收,控制台输入的字母和数字!
- 注意:
- OC中NSArray可以创建任意类型的数组
- */
- #import <Foundation/Foundation.h>
- char *minXuanZhe(char ziF[], int len);
- char *maxMaoPao(char ziF[],int len);
- int main(int argc, const char * argv[]) {
- char temp[6] = {0};
- printf("请输入6个字符\n");
- scanf("%s",temp);
- int len = sizeof(temp);
- //选择排序,从小到大
- // minXuanZhe(temp,len);
- //冒泡排序,从大到小
- maxMaoPao(temp,len);
- printf("%s\n",temp);
- return 0;
- }
- //冒泡排序(大到小)
- char *maxMaoPao(char ziF[],int len){
- int temp = 0;
- for (int i = 0; i<len; i++) {
- for (int j = 0; j<len-i; j++) {//两个相邻的元素,进行比较!最值往后
- if(ziF[j]<ziF[j+1]){
- temp = ziF[j+1];
- ziF[j+1] = ziF[j];
- ziF[j] = temp;
- }
- }
- }
- return ziF;
- }
- //选择排序(从小到到)
- char *minXuanZhe(char ziF[], int len){
- int temp = 0;
- for (int i = 0; i<len; i++) {//外层循环
- int minIndex = i;
- for (int j =i; j<len; j++) {//内层循环个数
- if(ziF[minIndex]>ziF[j]){//找出最小值的下标
- minIndex = j;
- }
- }
- //交换
- temp = ziF[minIndex];
- ziF[minIndex] = ziF[i];
- ziF[i] = temp;
- }
- return ziF;
- }
复制代码
|
|