i赋值为m-1为什么还是0啊


#include<stdio.h>
int main()
{
    int m,i,cnt=0;
    int t=0;
    scanf("%d",&m);
    for(i=m-1;i>0;i--);
    {
            int j;
            for(j=2;j<i;j++)
            {
                if(i%j==0)
                t=1;
            }
            if(t==0)
            {
            printf("%d",i);
            cnt++;
             }
        if(cnt==10)
        return 0;
    }
    return 0;
}

img


这个;号去了 你这手误了吧

img


还得t初始化 每换一个数t都从新赋值0

有帮助的话麻烦采纳一下

#include<stdio.h>
int main()
{
    int m=0, cnt = 0;
    int t = 0;
    scanf("%d", &m);
    for (int i = m-1; i > 0; i--)
    {
        t=0;
        for (int j = 0; j < i; j++)
        {
            if (i % j == 0)
                t = 1;
        }
        if (t == 0)
        {
            printf("%d", i);
            cnt++;
        }
        if (cnt == 10)
            return 0;
    }
    return 0;
}

 
#include<stdio.h>
int main()
{
    int m,i,cnt=0;
    int t=0;
    scanf("%d",&m);
    //for后面没有分号,程序是要输出m以内的素数吗?是的话i大于1,因为1不是素数
    for(i=m-1;i>1;i--)
    {
            int j;
            //t每次判断i都要初始化,避免受上个i结果影响
            t=0;
            for(j=2;j<i;j++)
            {
                if(i%j==0)
                t=1;
            }
            if(t==0)
            {
            printf("%d",i);
            cnt++;
             }
        //这是只要输出10个数?
        if(cnt==10)
        return 0;
    }
    return 0;
}