万能百科  > 所属分类  > 

请补充函数fun(),该函数的功能是:把字符下标为非素数的字符从字符串sb中删除,把字符下标为素数的

请补充函数fun(),该函数的功能是:把字符下标为非素数的字符从字符串sb中删除,把字符下标为素数的字符重新保存在字符串e口中。字符串sb从键盘输入,其长度作为参数传入函数fun()。

例如,输入“abcdefghijkl”,输出“cdfhl”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

define N 80

void fun(char s[],int n)

{

int i, j, k, flag;

【 】;

for(i=0; i<n; i++)

{

if (i>1)

s [k++] =s [i];

flag=I;

for(【 】; j<i&&flag; j++)

if (i%j==0)

{

flag=0;

【 】

}

}

s [k]='\0';

}

main()

{

int i=0, strlen=0;

char str[N];

clrscr ();

printf("\n Input a string:\n");

gets (str);

while (str [i] !='\0')

{

strlen++;

i++;

}

fun (str, strlen);

printf("\n*** display string ***\n");

puts (str);

}

正确答案:

k=0j=2k--k=0j=2k-- 解析:第一空:变量k声明时没有初始化,所以要在使用前初始化为0。第二空:如果一个数能被除了1和其自身之外的数整除,即余数为0,则这个数不是素数。所以除数j从2开始取数。第三空:如果当前字符的下标为非素数,则应将此字符删除,所以变量k减1,使下一个字符覆盖它,达到删除的目的。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签