fun的功能:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,然后放入t数组中

这是我做的为什么不对啊,没有错误,就是运行不出结果,哪里错了吗,我觉得很对啊voidfun(char*s,chart[]){inti,j=0;while(*s)for(i... 这是我做的为什么不对啊,没有错误,就是运行不出结果,哪里错了吗,我觉得很对啊
void fun(char *s, char t[])
{int i,j=0;
while(*s)
for(i=1;i<strlen(s);i=i+2)
if(s[i]%2==0)t[j++]=s[i];
t[j]=0;
}
下面是正确答案,那个if里面的什么意思,高人指点
{
int i, j = 0 ;
for(i = 0 ; i < strlen(s) ; i++)
if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ;
t[j] = 0 ;
}
展开
 我来答
兔子和小强
2012-08-13 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1423万
展开全部
a % 2 == 0表示a除以2余数是0即a是偶数
a % 2 != 0(与a % 2等价)表示a是奇数。
(i % 2) ==0&&(s[i] % 2)表示i是偶数asc是奇数。

判断奇偶用a & 1更好
shaoqi08110820
推荐于2017-11-25 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1733万
展开全部
void fun(char *s, char t[])
{int i,j=0;
//while(*s) 加这个干啥啊,加了一直是死循环,那里有结果出来
for(i=1;i<strlen(s);i=i+2)
if(s[i]%2)t[j++]=s[i]; //s[i]%2==0 表示要选择ASCII 位偶数
t[j]=0;
}
追问
ENEN,谢谢啦,我觉得加了while(*s),不就保证了运算到/0推出循环吗,怎么会死循环呢
追答
你还是用指针,S是首地址,你要有一个指针p=s 让p++遍历整个S数组,就不会发生你开始的情况了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式