c语言菜鸡,这道很简单,但我的运行正确,提交就错求,大佬一个代码,如图,谢谢
一、题目要求输入的数字有区间,你scanf要嵌套一个循环验证输入。
二、当前存款b的累加,应放在判断后面,否则第一次输入的值就没有被判断。
三、注意题目要求先t次输入,再输出t行结果,不是每次输入就输出。要用数组保存每次输入的结果,最后循环输出。(这就是为什么题目设定t的区间是大于1的整数,因为要作为数组的维度,当然用动态数组做,另当别论)。
下面是代码,你参考:
#include<stdio.h>
int main()
{
int a=0,b=0,t=0,i,j=1,flag[1000];
while(t<=0 || t>1000)
scanf("%d",&t);
for(i=0;i<t;i++)
{
while(a<=0 || a>100000 || b<=0 || b>100000)
scanf("%d%d",&a,&b);
while(1)
{
if(b<a)//存款不够吃饭
{
flag[i]=0;
break;
}
if(j>=a)//存款够且收入正增长
{
flag[i]=1;
break;
}
b=b+j-a;
j=j*2;
}
a=b=0,j=1;
}
for(i=0;i<t;i++)
{
if(flag[i])
printf("YES\n");
else
printf("NO\n");
}
return 0;
}