从键盘上输入一个整数,n=x%10,取余数,得到的结果有2种情况:
1、int n=x%10 第一次用 do while 循环,输入的数是12245, n=5; 这个时候:bs[5]=1 ; x=1224
第二次: x=1224, n=1224%10=4(取余数得到结果4) , 这个时候:bs[4]=1; x=122
第三次: x=122 , n=122%10=2(取余数得到结果是2), 这个时候: bs[2]=1; x=12
第四次: x=12, n=12 % 10=2(取x的余数) 这个时候:bs[2]=1; x=1
因为第四次判断满足条件:bs[2]==1 打印重复了,执行break,然后跳出循环;
//从键盘上输入一个数,如12245,判断这个整数中的数字是否有重复
int x;
printf("请输入一个数:");
scanf("%d",&x);
bool bs[10]={0};
do {
int n=x%10;
if ( bs[n] ==1 ) {
printf("重复了\n");
break;
}
bs[n] = 1;
x/=10;
}
while (x);
if ( 0==x ) {
printf("没有重复\n");
}
return 0;
do
{
........
}while( )
先执行语句,在判断括号里的语句,是真再循环,假怎退出循环。
while( )
{
........
}
是先判断真假再执行,这两个语句的区别是,do while不管真假至少执行一次,while要第一次就为假就不会执行
do while 循环的图片示意图: