編程題
請(qǐng)編寫函數(shù)fun, 對(duì)長(zhǎng)度為7個(gè)字符的字符串, 除首、尾字符外,將其余5個(gè)字符按ASCII碼降序排列。
例如,原來(lái)的字符串為 CEAedca,排序后輸出為 CedcEAa 。
注意: 部分源程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
給定源程序:
#include
#include
#include
int fun(char *s,int num)
{
}
main()
{ www.Examda.CoM
char s[10];
printf("輸入7個(gè)字符的字符串:");
gets(s);
fun(s,7);
printf("\n%s",s);
NONO();
}
解題思路:
本題是考察考生如何對(duì)字符串中的字符按降序進(jìn)行排序。給出的程序是使用雙重for循環(huán)以及冒泡法進(jìn)行排序的,結(jié)果仍存放在原先的字符串上。
參考答案:
int fun(char *s,int num)
{
char ch ;
int i, j ;
for(i = 1 ; i < 6 ; i++)
for(j = i + 1 ; j < 6 ; j++) {
if(*(s + i) < *(s + j)) {
ch = *(s + j) ;
*(s + j) = *(s +i) ;
*(s + i) = ch ;
}
}
}