蓝桥杯美丽的2 卡片 两个运行后没有输出显示

蓝桥杯美丽的2 卡片 两个题目运行后没有输出显示
美丽的2

#include<stdio.h>
int main()
{
    int i,j,s=0;
    for(i=1;i<=20;i++)
        while(i!=0)
        {
            j=i%10;
            i/=10;
            if(j==2)
            {
                s++;
                break;
            }
         } 
        printf("%d",s);
 } 
卡片
```c

#include<stdio.h>
int main()
{
    int a[9]={2021,2021,2021,2021,2021,2021,2021,2021,2021};
    int i,j,k,t;
    for(i=1;;i++)
    {
        while(i!=0)
        {
            j=i%10;
            i=i/10;
            a[j]--;
        }
        if(a[0]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)
            break;
    }
    printf("%d",i);
 } 

```

你写的是死循环所以没输出

#include <stdio.h>

int main(){
    int count = 0;
    int k = 0;
    for (int i = 1; i <= 2020; i++){
        k = i;
        do{
            if (k % 10 == 2){
                count++;
                k = 0;
            }
            else {
                k = k/10;
            }
        }while(k!=0);

    }
    printf("%d",count);

}