h-b-z-d-j-s-m 发表于 2022-3-2 14:15:40

为什么

#include <stdio.h>main(

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

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

}while(s);

printf(" n0=%d,n1 =%d,n2=%d,nn= %d(n",n0,n1,n2,nn);
[解析]本题执行过程为,s='1', 匹配case'1', n1=1, n2=1; s='2", 匹配case'2', n2=2; s=°0", 匹配case',n0=1, n1=2,n2=3; s='1',为什么while(s)=while(0)时不是退出循环

番杰 发表于 2022-3-2 17:28:09

你这里面的s[ i ] = '0',
这个0是字符型的,是一个数值,所以它在逻辑上表示的是真,
所以就不会退出循环。

程序中判断时,应该是while(‘0’),而不是你说的while(0),前者为真,后者为假。
页: [1]
查看完整版本: 为什么