下列程序的功能是:将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数NumSort(int a[10][9])实现此功能,最后调用Wdata函数将新序列输出到文件out.dat中。 说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[l0][9]中,分别求出这10个新序列。 例:序列{6,8,9,1,2,5,4,7,3} 经重排后成为{3,4,5,2,1,6,8,9,7} 注意:部分源程序已经给出。 请勿改动主函数main和写函数Wdata的内容。
答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。
答 案:
【审题关键句】统计一个长度为2的子字符串在另一个字符串中出现的次数。
【解题思路】
①定义字符指针P,q,并且q指向字符串str。定义计数整型变量cnt,设置其值等于0。
②在while循环中调用C语言的字符串库函数strstr,返回子字符串substr在字符串q第一次出现的位置,赋给变量P。用if语句判断,如果P的值为空,则说明在字符串str没有找到子字符串,退出循环。否则,变量cnt加l,再把P的值加2(因为子字符串substr的长度为2)赋给变量q,执行下一次循环。直到字符串中不存在子字符串时,退出循环结束。
③最后,返回子字符串substr在字符串s仃中出现的次数。
【答案参考】