重新调整ms_printf格式字符串

时间:2015-11-27 14:01:14

标签: c

有人可以告诉我为什么我的代码不起作用?

 printf("Please enter a number for 7 boom game\n");
   scanf("%d",&n1);
   printf("[")     
   if(n1<7)
   printf("");
   else if (n1 >=7)
   printf("7")

   for (i=1;i<=n1;i++)
   {

    while((i!=0)&&(n1>=i)&&(i!=7))
    {
    if(i%10==7)
    printf(",%d",i);
    else if(i%7==0)
    printf(",%d",i);
    else
    {
    y1=i;
    while(y1!=0)
    {
    y1=y1/10;
    k++;

    }
    for(j=0;j<=k;j++)
    {
    div=div*10;

    }

    if((y1)%div==7)
    printf(",%d",i);

    }

    i++;

    }
    }

我的输出必须是:所有包含7的数字,如20输出的数字是[7,14,17]并且数字必须按顺序排列?

1 个答案:

答案 0 :(得分:0)

查找嵌入式7的代码是错误的。例如,当您到达此if时,y1始终为0

if((y1)%div==7)
    printf(",%d",i);
}

要查找嵌入式7,您可以这样做:

y1 = i;
do {
    if (y1%10 == 7) {
        // Last digit in y1 is 7
        printf(",%d",i);
        break;
    }
    y1 = y1 / 10;  // Remove last digit in y1
} while (y1 > 0)