计算机二级c语言编程题

img

img


下面是我写的,结果全是*

img

参考如下,如有帮助,请帮忙采纳一下,谢谢。


#include <stdio.h>
void fun(char* s)
{
    int i=0,j=0;
    int len =0; //总长度
    int ma ; //最后的字母位置
    while(s[len] != '\0')
        len++;
    ma = len-1;
    while(s[ma] == '*')
        ma--;

    while(s[i] == '*')
        s[j++] = s[i++];
    while(i<=ma)
    {
        if(s[i] != '*')
            s[j++] = s[i];
        i++;
    }
    for(i=ma+1;i<len;i++)
        s[j++] = s[i];
    s[j] = 0;
}

int main()
{
    char s[81]={0};
    gets(s);
    fun(s);
    printf("%s\n",s);
    return 0;
}

参考代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
void fun(char *a, char *h, char *p)
{
    char *c=h;
    while (h!=p+1){
        if (*h!='*'){
            *c = *h;
            c++;
        }
        h++;
    }
    while (*h!='\0'){
        *c = *h;
        c++;
        h++;
    }
    *c='\0';
}
int main()
{
    char s[81]={0},*t,*f;
    gets(s);
    t=f=s;
    while(*t)t++;
    t--;
    while(*t=='*')t--;
    while(*f=='*')f++;
    fun(s,f,t);
    puts(s);
    return 0;
}

img