题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

导读:本篇文章讲解 题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

代码如下所示:

#include <stdio.h>

void fun(char* p)

{
    char   max, * q;   int   i = 0;
    q = NULL;
    max = p[i];//假设p[0]是最大值
    while (p[i] != 0)//游历实参的数组元素
    {
        if (max < p[i])//该if语句的作用是找出该字符数组里面ASCII码最大的元素
        {
            max = p[i];
            q = p + i;
        }
        i++;
    }
    while (q >p)//将ASCII码最大字符前面的字符在位置上进行调整
    {
        *q = *(q - 1);//将ASCII码最大字符前面的字符统一向后面移动一位,确保第一个位置是为ASCII码最大的元素保留的
        q--;
    }
    p[0] = max;//ASCII码最大的元素即被排在最前面
}
main()
{
    char   str[80];
    printf("Enter a string:  ");
    gets(str);
    printf("\nThe original string:      ");
    puts(str);
    fun(str);
    printf("\nThe string after moving:  ");
    puts(str); printf("\n\n");
}

输出结果如下所示:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/81555.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!