问一道程序设计题 我自认为自己没错的 但是出来的结果不对
3.程序设计题假定输入的字符串中只包含字母和*号。请编写函数fun(),它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为****A*BC*DEF*G** *****,若n的值为2,删除后,字符串中的内容则应当是**A*BC*DEF*G*******;若n的值为4,则字符串中的内容仍为****A*BC*DEF*G*******。N的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
#include <conio.h>
void fun(char *a,int n)
{
}
main()
{
char s[81];int n;
printf("Enter a string :\n");gets(s);
printf("Enter n : ");scanf("%d",&n);
fun( s,n );
printf("The string after deleted :\n");
puts(s);}
我的答案是
int k=0,i,j=0;
while(a[k]=='*')
{
k++;
}
if(k>n)
{
for(i=0;i<n;i++)
{
a[j++]='*';
}
for(;a[k]!='/0';k++)
{
a[j++]=a[k];
}
a[j]='\0';
}