沉梦昂志816
2021-09-24 10:16
采纳率: 100%
浏览 47

关于编写一个C语言程序,实现以下功能

编写一个C语言程序:1、任意输入一个字符串;2、把字符串中的所有字符按照从左到右的顺序按照ASCII码的大小进行排序;3、将字符串中的所有字符依次左移,其中最左边的字符移到最右边;4、连续输出显示,要求输出跑马灯效果。

  • 收藏

1条回答 默认 最新

  • 已采纳
    /*编写一个C语言程序:1、任意输入一个字符串;2、把字符串中的所有字符按照从左到右的顺序按照ASCII码的大小进行排序;3、将字符串中的所有字符依次左移,其中最左边的字符移到最右边;4、连续输出显示,要求输出跑马灯效果。*/
    
    #include <stdio.h>
    #include <string.h>
    
    /*函数声明部分*/
    void bubble_sort(char arr[],int n);  //冒泡函数声明
    void char_left(char str[],int n);    //字符左移函数声明
    int main()
    {
        int i = 0;
        char str[128];
        gets(str);
        int len = strlen(str);
    
        //排序
        bubble_sort(str,len);
        puts(str);
    
        //跑步灯
        for(i=0;i<len;i++)
        {
            char_left(str,len);
            puts(str);
        }
        return 0;
    }
    
    /*函数定义部分*/
    void bubble_sort(char arr[],int n)
    {
        int i,j,tmp;
        for(i=0;i<n-1;i++)   //n个元素需要排n-1趟
        {
            for(j=0;j<n-1-i;j++) //每排完一趟,下次需要排的元素减1
            {
                if(arr[j]<arr[j+1]) //相邻元素比较,小于就交换位置
                {
                    tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }
    }
    
    void char_left(char str[],int n)
    {
        int i;
        int tmp = str[0];  //保存第1个元素
        for(i=1;i<n;i++)
        {
            str[i-1] = str[i];
        }
        str[n-1] = tmp;
    }
    
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题