#include<stdio.h>
int main(void)
{
int t=0;
int a=0;
int b=1;
int n=0;
int f=0;
int g;
scanf("%d",&t);
for(a=1;a<=t;a++)
{
g=0;
scanf("%d",&n);
for(b=1;b<=n;b++)
{
scanf("%d",&f);
g+=f;
}
if(g>=100&&g<200)
{
printf("%d\n",g-30);
}
else if("g>=200&&g<300")
{
printf("%d\n",g-70);
}
else if("g>=300&&g<400")
{
printf("%d\n",g-110);
}
else if("g>=400")
{
printf("%d\n",g-160);
}
else
printf("error");
}
return 0;

}

Comments  

# shixiaoyu 2021-10-16 17:11
https://onlinegdb.com/5gNvM4kGj
这个是80分,不知道哪里错了。。。
# Moderator 2021-10-17 00:29
你这一堆if都是独立的,每个if都要做一遍,前面的做完后还会继续做后面的if。

明白这个意思吗?
# yuanyuan 2021-10-14 07:59
https://git.juancord.xyz/juan/BUPT-homework/src/branch/master/pset3/5-discount.c
# legendary 2021-10-13 23:34
好的老师首先是后面的else if括号里加引号了(正确的话应该是不加);其次就是if的顺序有问题,pta比较严格,所以要严格的按照 您出的题目的顺序写,我把if 和 else if 的后面依次改成了
if(g>=400)
{
printf("%d\n",g-160); //最大优惠
}
else if(g>=300)
{
printf("%d\n",g-110); //第二优惠
}
else if(g>=200)
{
printf("%d\n",g-70); //第三优惠
}
else if(g>=100)
{
printf("%d\n",g-30); //最低优惠
}
else
printf("%d\n",g); //无优惠
# legendary 2021-10-13 22:39
谢谢老师,我找的问题的原因了
+1 # Moderator 2021-10-13 22:58
可能的话,最好把问题所在和解决办法也分享一下,大家都受益。
# legendary 2021-10-13 20:46
老师想问一下这个程序这样写为啥不可以呀
+1 # Moderator 2021-10-13 22:03
格式吗?整个程序?还是第几行?

多写些文字把问题描述清楚。

对于程序片段,再写上注释,说明这段代码你想要干什么。
# Moderator 2021-10-13 18:45
https://www.onlinegdb.com/
这个平台可以直接访问。
+1 # Moderator 2021-10-13 18:42
1,问题是什么,请说明清楚。
2,不要这样贴代码,别人没法看。建议用在线平台的链接。

You have no rights to post comments