本关任务:请编写函数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 17:46:53 浏览: 78
vb.net字符串转换
5星 · 资源好评率100%
下面是一个实现该功能的C语言程序,其中fun函数的功能是对长度为7个字符的字符串,除首,尾字符外,其余5个字符按ASCII码降序排列:
```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++){ // 除首尾字符外的5个字符
for(j=i+1; j<num-1; j++){ // 从i+1开始比较后面的字符
if(s[i] < s[j]){ // 如果前面的字符比后面的字符小,交换两个字符的位置
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
int main(){
char s[10];
printf("请输入一个长度为7的字符串:");
gets(s);
fun(s, 7); // 调用fun函数进行排序
printf("排序后的结果为:%s\n", s);
return 0;
}
```
程序中,使用了两层循环来实现排序,外层循环控制要排序的字符的位置,内层循环从外层循环的下一个位置开始比较字符的大小,如果前面的字符比后面的字符小,就交换两个字符的位置。最后,将排好序的字符串输出即可。
需要注意的是,为了方便比较大小,本程序中使用了ASCII码来比较字符的大小,因此只适用于英文字母和数字等ASCII码表示的字符,不适用于汉字等其他字符。另外,gets函数已经被推荐不再使用,可以使用fgets函数代替。
阅读全文