#include
int main()
{
long long n,i,s;
scanf("%d",&n);
s=n;
for(i=1;i<=n;i++)
{
if(i%7==0) s=s-1;
else
do
{
if(i%10==7){s=s-1;break;}
else i=i/10;
}while(i!=0);
}
printf("%d",s);
return 0;
}
死循环了。因为你的循环计数变量i在循环体内发生了变化。
#include <stdio.h>
int main() {
long long n, i, s;
scanf("%d", &n);
s = n;
for (i = 1; i <= n; i++) {
int tmp = i;
if (tmp % 7 == 0)
s = s - 1;
else
do {
if (tmp % 10 == 7) {
s = s - 1;
break;
} else
tmp = tmp / 10;
} while (tmp != 0);
}
printf("%d", s);
return 0;
}