鱼C论坛

 找回密码
 立即注册
查看: 986|回复: 1

为什么

[复制链接]
发表于 2022-3-2 14:15:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>main(

char *s="120119110";int n0,n1,n2,nn,i;

n0=n1=n2=nn=i=0;do{
switch(s[i+ +])
default : nn+ t;
case '0': n0+ +;
case’1':n1++;
case '2': n2++;

}while(s[i]);

printf(" n0=%d,n1 =%d,n2=%d,nn= %d(n",n0,n1,n2,nn);
[解析]本题执行过程为,s[0]='1', 匹配case'1', n1=1, n2=1; s[1]='2", 匹配case'2', n2=2; s[2]=°0", 匹配case',n0=1, n1=2,n2=3; s[3]='1',为什么while(s[i])=while(0)时不是退出循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-2 17:28:09 | 显示全部楼层
你这里面的s[ i ] = '0',
这个0是字符型的,是一个数值,所以它在逻辑上表示的是真,
所以就不会退出循环。

程序中判断时,应该是while(‘0’),而不是你说的while(0),前者为真,后者为假。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 10:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表