题目如下:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:是字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。n的值在主函数中输入,在编写函数时,不得使用C语言提供的字符串函数。

我的做法如下:#include

void fun(char *a,int n)

{

int i=0,j=0,k,m;

char *b=a,*c=a;

while(*b)

{i++;b++;}

b--;

while(*b=='*')

{j++;b--;}

m=i-j+n-1;

if(n

for(k=0;k

{a[k]=*c;

c++;}

a[k+1]='\0';

}

main()

{char s[81]; int n;

void NONO ();

printf("Enter a string:\n");gets(s);

printf("Enter n : ");scanf("%d",&n);

fun(s,n);

printf("The string after deleted:\n");puts(s);

NONO();

}

void NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

FILE *in, *out ;

int i, n ; char s[81] ;

in = fopen("in.dat","r");

out = fopen("out.dat","w");

for(i = 0 ; i < 10 ; i++) {

fscanf(in, "%s", s);

fscanf(in, "%d", &n);

fun(s,n);

fprintf(out, "%s\n", s) ;

}

fclose(in);

fclose(out);

}

请各位高手帮我指点出错误的地方,或者有什么更简便的程序也请列出~谢谢了~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐