有人可以告诉我为什么我的代码不起作用?
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]并且数字必须按顺序排列?
答案 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)