today you 2021-09-24 10:16 采纳率: 50%
浏览 73
已结题

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

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

  • 写回答

1条回答 默认 最新

  • ⁽⁽ଘ晴空万里ଓ⁾⁾ 嵌入式领域新星创作者 2021-09-24 10:50
    关注
    /*编写一个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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站