小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发出提醒。
输入格式:
输入第一行是两个正整数 N 和 M (1≤N≤100,0≤M≤1000),表示有 N 条价格记录,小 T 设置的价格为 M。
接下来 N 行,每行有一个实数 Pi(−1000.0<Pi<1000.0),表示一条价格记录。
输出格式:
对每一条比设定价格 M 便宜的价格记录 P
,在一行中输出 On Sale! P
,其中 P
输出到小数点后 1 位。
输入样例:
4 99
98.0
97.0
100.2
98.9
结尾无空行
输出样例:
On Sale! 98.0
On Sale! 97.0
On Sale! 98.9
结尾无空行
我的答案:
#include<stdio.h>
int main()
{
int N,M;
double p;
scanf("%d %d",&N,&M);
while(N--)
{
scanf("%lf",&p);
if(p<M)
{
printf("On Sale! %.1lf\n",p);
}
}
return 0;
}
ps:while(N--),当N=0时,并没有马上跳过循环条件和循环体,而是将循环条件执行完再跳过循环体。原因:N--是一个整体,从编译器角度看,先将n赋值给一个临时变量,然后自身减去1,返回的不是n而是临时变量。此时临时变量0,N为-1。故n--操作是一个整体,必须完整的执行完,不能分开