题目:下列给定程序中函数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