哈哈哈的 发表于 2019-2-13 15:02:53

一道国二c语言编程题,救救孩子吧!

函数fun的功能是:将s所指字符串中除了下标为偶数,同时ASCII值也为偶数的字符为其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
下面是我编写的fun函数:
void fun(char *s,char t[])
{
int i,j,length;
        length=strlen(s);
        for(i=0;i<length;i+=2)
                if(s%2==0)
                        t=s;
                t='0';
}


这个是参考答案给的程序:
void fun(char *s, char t[])
{
        int i,j=0,n=strlen(s);
for(i=0;i<n;i++)
if(i%2==0&&s%2==0) t=s;
t='\0';

}

我感觉我写的和答案表达的意思都是一样的,可不知道为什么不能够成功运行,在交卷时这一块得分也是0。
希望大家能够帮帮我,能够告诉我哪里出现问题了,谢谢!!

Aojacy 发表于 2019-2-13 15:10:58

本帖最后由 Aojacy 于 2019-2-13 15:27 编辑

楼下正解

灰色的天空 发表于 2019-2-13 15:24:24

本帖最后由 灰色的天空 于 2019-2-13 15:25 编辑

第一个:你这个‘0’的ascii码是30h,不是字符串的结束标志,应该换成0或者‘\0’.第二个:j要初始化为0.

542624047 发表于 2019-2-13 16:28:04

楼上正解~

TCY 发表于 2019-2-13 17:57:57

void fun(char *s, char t[])
{
//j要初始化为0
      int i, j = 0, n = strlen(s);
      for(i = 0; i < n ; i ++ )
                if (i % 2 == 0 && s % 2 == 0)
                        t = s;
//这里是'\0'而不是'0'
      t='\0';
}

哈哈哈的 发表于 2019-2-13 21:19:27

灰色的天空 发表于 2019-2-13 15:24
第一个:你这个‘0’的ascii码是30h,不是字符串的结束标志,应该换成0或者‘\0’.第二个:j要初始化为0.

谢谢热心答疑~~

哈哈哈的 发表于 2019-2-13 21:20:02

TCY 发表于 2019-2-13 17:57


嗯嗯,谢谢你~

灰色的天空 发表于 2019-2-14 11:16:39

哈哈哈的 发表于 2019-2-13 21:20
嗯嗯,谢谢你~

不给我最佳我很生气的
页: [1]
查看完整版本: 一道国二c语言编程题,救救孩子吧!