Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2509515
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-11 10:47:55

    写一函数,用“起泡法”对输入的10个字符按由大到小进行排序。
    根据起泡法的原理,用第一个和相邻的一个比较,字符大的放在下面,一直到最后。经过n-1轮的比较,即可对数组进行排序。代码如下:

#include <stdio.h>

void char_sort(char[],int);
void print_array(char[],int);
int main(int argc, char *argv[])
{
    char ch1[10] = {'k','c','d','m','z','h','u','q','o','a'};
    
    printf("the source char array:\n");
    print_array(ch1,10);
    
    char_sort(ch1,10);
    
    printf("\nthe sort array is :\n");
    print_array(ch1,10);
    
    system("pause");
    return 0;
}

void char_sort(char ch[], int n)
{
     int i,j;
     char temp;
     for (i = 0 ; i < n - 1; i++)
     {
         for (j = 0; j < n - 1 - i ;j++)
         {
             if (ch[j] > ch[j + 1])
             {
                temp = ch[j];
                ch[j]= ch[j + 1];
                ch[j + 1] = temp;
             }
         }
     }
}

void print_array(char ch[], int n)
{
     int i;
     for (i = 0; i < n ; i++)
     {
         printf("%c ",ch[i]);
     }
}


阅读(1436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~