本关任务:请编写函数fun,对长度为7个字符的字符串,除首,尾字符外,其余5个字符按ASCII码降序排列。#include <stdio.h> #include <string.h> void fun(char *s,int num) { } void main() { char s[10]; gets(s); fun(s,7); printf("%s", s); }
时间: 2024-03-11 07:47:07 浏览: 110
求汉字字符串的拼音首字母
好的,根据题意,我们可以先将除首尾字符外的5个字符按照ASCII码从大到小进行排序,然后再将排序后的字符依次填入原字符串中间的5个位置。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s,int num) {
int i, j;
char temp;
for(i=1; i<num-1; i++) {
for(j=i+1; j<num-1; j++) {
if(s[i] < s[j]) { //按ASCII码从大到小排序
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
//将排序后的字符依次填入原字符串中间的5个位置
for(i=1; i<num-1; i++) {
s[i] = s[i+1];
}
}
void main() {
char s[10];
gets(s);
fun(s,7);
printf("%s", s);
}
```
注意,在函数中,我们传入了参数`num`,表示字符串的长度,这样就可以适用于不同长度的字符串。另外,由于题目中要求除了首尾字符外,其余5个字符按照ASCII码降序排列,所以我们需要从第二个字符开始遍历到倒数第二个字符。
阅读全文