编程小白C语言题目练习24

这篇博客介绍了一道C语言编程题,题目要求通过解析包含字母的字符数组`ch[7]={"65ab21"}`来找出隐藏的数字。博主分析了程序的思路,指出关键在于for循环的条件`ch[i]>='0'&&ch[i]<'9'`,由于数组中'a'导致循环提前终止,最终得出`s=6`的结果。
摘要由CSDN通过智能技术生成

题目要求

下面程序的运行结果为             

#include <stdio.h>

main()

{

char ch[7]={"65ab21"};

  int   i,s =0;

  for(i=0;ch[i]>=0&&ch[i]<9;i+=2)

    s=10*s+ch[i]-'0';

 printf("%d\n",s);

}

思路分析 

这个题还是蛮有代表性的,基础不好就难做了,底子好的人一眼就看出来了里面的猫腻,看这个for循环

突破点在于ch[i]>='0'&&ch[i]<'9';观察数组ch[7],它里面的元素为什么不是"654321",而是"65ab21",就明显暗示了,到ch[2]=a的时候退出不满足for循环条件退出了for循环

运行代码,进入到for循环,执行 s = 10*s + ch[0]-'0' = 10* 0+ 6 -'0' ,所以s=6,然后i+2=2,ch[2]=a,不满足for循环,退出for循环,然后打印s,s=6

验证结果

题目直接把代码都给了,验证结果就行了 s=6

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值