在下編程大門的新手一枚,遇到了這樣一道題:2016年,小豪喜歡數字6,於是一個數的某一位有數字6他都喜歡(比如2016個位是6,所以小豪喜歡2016這個數),但是小豪討厭9(因為9的顏值太低),任意一個數,只要某個數字是9他都不喜歡(就算這個數有6,比如6699這個數就是小豪不喜歡的)。那麼問題來了,現在給一個a,b,求a到b之間有多少個數是小豪喜歡的。
先輸入一個T表示測試數據組數(T<=50)
每組數據輸入a,b(0
輸出小豪喜歡數的個數。
代碼如下:
#include
void main()
{
long a,b,s,i;
int n,k=0,j,t,m;
while(scanf("%d",&n)==1)
{
s=0;
scanf("%ld%ld",&a,&b);
for(i=a;i<=b;i++)
{
t=i;j=0;
while(t)
{
m=t%10;
t=t/10;
if(m==6)j=1;
if(m==9)
{
j=0;
break;
}
}
s+=j;
}
printf("%ld\n",s);
k++;
if(k>=n)break;
}
}
經過多次測試,發現第二組數據就開始出了問題,猜測應該是初始化的問題,可是經過小白2天時間的思考,並沒有什麼問題(O_O)。這樣的問題已經積累了好幾道題了。實在是無能為力了,希望在這裡找到大神指點迷津讓我開竅。謝謝
#include <stdio.h>
void main()
{
long a,b,s,i;
int n,k=0,j,t,m;
scanf("%d",&n);//修改
while(n)//修改
{
s=0;
scanf("%ld%ld",&a,&b);
for(i=a;i<=b;i++)
{
t=i;j=0;
while(t)
{
m=t%10;
t=t/10;
if(m==6)j=1;
if(m==9)
{
j=0;
break;
}
}
s+=j;
}
printf("%ld\n",s);
k++;
if(k>=n)break;
n--;//修改
}
}