双十一快到了,网上的各个商家纷纷推出各种优惠活动,某商家的优惠方式为满100减30,满200减70,满300减110,满400减160。
请你写一段程序,根据给定条件,计算用户某单实际该付多少钱。
输入格式:
第一行为一个整数t代表测试数据组数。
后边是t行测试数据,每行均为若干个用空格分隔的整数,其中第一个整数为n,代表用户买的商品的个数,后边为n个正整数,分别代表这n件商品的价格。
输出格式:
为t行,每行依次对应输入的t行测试数据用户实际付钱的计算结果。测试用例保证所有整数(包括求和的结果)可以用int存储。
特别说明:虽然程序在本地实际运行时输入和输出是混合在一起显示的,但在OJ上输入和输出是完全分开的,互相不干扰。所以输入整数T后,只要输入一行测试数据,应该立刻输出一行优惠结果;然后是输入下一行测试数据,输出下一个优惠结果。
输入样例:
2
4 10 20 30 40
5 10 20 30 40 50
输出样例:
70
120
代码如下:
#include<stdio.h>
int main()
{
int t, z;
scanf("%d", &t);//组数
int sh = 0;//总价格
for (z = 1; z <= t; z++)
{
int x;
scanf("%d", &x);//商品数
int i, c;
int ch;//价格
sh = 0;
for (i = 1; i <= x; i++)
{
scanf("%d ", &ch);
sh = sh + ch;
}
if (sh < 100)
printf("%d\n", sh);
else if (sh >= 100 && sh < 200)
printf("%d\n", sh - 30);
else if (sh >= 200 && sh < 300)
printf("%d\n", sh - 70);
else if (sh >= 300 && sh < 400)
printf("%d\n", sh - 110);
else
printf("%d\n", sh - 160);
}
return 0;
}
考察 if else 循环结构