黑马程序员技术交流社区
标题:
输入6个字符串(仅含字母和数字),字符串排序并输出?
[打印本页]
作者:
huh
时间:
2015-12-29 23:32
标题:
输入6个字符串(仅含字母和数字),字符串排序并输出?
/*
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;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2