本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。
输入在第一行中给出非负整数n
,即学生人数。第二行给出n
个非负实数,即这n
位学生的成绩,其间以空格分隔。
average = 成绩均值
count = 不及格人数
其中平均值精确到小数点后两位,等号的左右各有一个空格。
4
60 54 95 73
average = 70.50
count = 1
0
average = 0.00
count = 0
#include
main()
{
int n,i,a,count=0,sum =0;
float average;
scanf("%d",&n);
if (n==0)
{
printf("average = 0.00\n");
printf("count = 0");
}
else
{
for (i=0;i
某商场推出打折促销活动:若顾客购物额不满 100 元则不优惠;达到或超过 100 元则九五折优惠;达到或超过 200 元则九折优惠;达到或超过 500 元则八五折优惠;达到或超过 1000 元则八折优惠。请编写程序,根据购物金额计算优惠后的实际付款金额。
输入格式
购物金额
输出格式
付款金额
输入样例1
87.5
输出样例1
87.50
输入样例2
2403.85
输出样例2
1923.08
#include
int main()
{
double x;
double y;
scanf("%lf",&x);
if(x<100) {
y=x;}
else if(x<200){
y=x*0.95;}
else if(x<500){
y=x*0.9;}
else if(x<1000){
y=x*0.85;}
else{
y=x*0.8;}
printf("%.2f",y);
return 0;
}
某电价规定:月用电量在150千瓦时及以下部分按每千瓦时0.4463元收费,月用电量在151~400千瓦时的部分按每千瓦时0.4663元收费,月用电量在401千瓦时及以上部分按每千瓦时0.5663元收费。
请编写一个程序,根据输入的月用电量(单位以千瓦时计),按该电价规定计算出应缴的电费(单位以元计)。
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试,输入一个整数n(0≤n≤10000),表示月用电量。
对于每组测试,输出一行,包含一个实数,表示应缴的电费。结果保留2位小数。
1
267
121.50
#include
double df(double n)
{
double price=0.00;
if(n<=150)
{price=n*0.4463;}
else if(n<=400&&n>=151)
{price=150*0.4463+(n-150)*0.4663;}
else if(n>=401)
{price=150*0.4463+250*0.4663+(n-400)*0.5663;}
return price;
}
int main()
{
int T,n;
double price;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
price=df(n);
printf("%.2lf\n",price);
}
return 0;
}
从键盘上输入3个整数,按照升序排序,最后输出结果。
输入三个整数,中间用空格分隔。
输出三个整数,中间用英文逗号分隔,最后换行。
1 2 3
1,2,3
1 3 2
1,2,3
2 1 3
1,2,3
2 3 1
1,2,3
3 1 2
1,2,3
3 2 1
1,2,3
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(b>c)
{
int t=c;
c=b;
b=t;
}
if(a>b)
{
int t=a;
a=b;
b=t;
}
if(b>c)
{
int t=c;
c=b;
b=t;
}
printf("%d,%d,%d",a,b,c);
return 0;
}
输入年份year、月份month,判断该月的天数。闰年:能被4整除但不能被100整除或者能被400整除的年份是闰年。
测试数据有多组,处理到文件尾。对于每组测试,输入两个整数,表示年份year和月份month。
对于每组测试,输出对应年月的天数。
2020 2
2020 4
29
30
#include
int main(){
int year,mouth;
while(scanf("%d %d",&year,&mouth)!=EOF)
{
switch(mouth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31\n");break;
case 2:
if(year%4==0&&year%100!=0||year%400==0){
printf("29\n");
}
else{
printf("28\n");
}
break;
case 4:
case 6:
case 9:
case 11:
printf("30\n");
}
}
return 0;
}
已知:y是x的函数,
当x<10时,y=-x;
当x=10时,y=31;
当x>10,且x<=100时,y=3x-7;
当x>100时,y= x2-5x+1;
任意输入一个int类型的整数x。
输出为一个整数,单独占一行,即x对应的函数值。
5
-5
#include
int main()
{
int x;
scanf("%d",&x);
if(x<10)
printf("%d\n",-x);
else if(x==10)
printf("%d\n",31);
else if(x>10&&x<=100)
printf("%d\n",3*x-7);
else
printf("%d\n",x*x-5*x+1);
return 0;
}
2021年9月9日,张三想约一直暗恋了很久的的女生小芳看电影,小芳告诉张三这天没空,可以答应在某年某月某日陪他一起看。输入一个约会的日期,请你编写程序判断最终张三是否能实现他约会的愿望,若能实现则输出yes,否则输出no。注意,约会不能穿越到2021年9月9日前。
在一行中输入年月日,用-分隔。
合法的日期输出yes,不合法的日期输出no
2022-7-7
yes
2022-2-29
no
2021-2-28
no
#include
int main()
{
int y,m,d;//定义为年 月 日
scanf("%d-%d-%d",&y,&m,&d);
if(y<2021||(y==2021&&m<9)||(y==2021&&m==9&&d<=9))
{
printf("no");
}//不能穿越到过去
else{
if((y%4==0&&y%100!=0)||y%400==0)
{
if(m==2)
{
if(d>=1&&d<=29)
{
printf("yes");
}
else{
printf("no");
}
}
}//闰年2月
else{
if(m==2)
{
if(d>=1&&d<=28)
{
printf("yes");
}
else {
printf("no");
}
}//平年2月
}
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)//下面是不用讨论年份的一般情况
{
if(d>=1&&d<=31)
{
printf("yes");
}
else{
printf("no");
}
}
if(m==4||m==6||m==9||m==11)
{
if(d>=1&&d<=30)
{
printf("yes");
}
else{
printf("no");
}
}
}
if(m<1||m>12)
{
printf("no");//月份也应限制
}
return 0;
}
键盘输入三个整数和两个算术运算组成的表达式,计算结果。
运算符包括:加+,减-乘*,除/
三个整数,两个运算符,组成算数表达式,输入的字符之间没有空格
在表达式的后边输出=计算结果
6+3*11
6+3*11=39
#include
#include
#include
int main()
{
int x,y,z;
char a,b;
long h;
scanf("%d%c%d%c%d",&x,&a,&y,&b,&z);
printf("%d%c%d%c%d=",x,a,y,b,z);
switch(a)
{
case'+':
switch(b){
case'+':h=x+y+z;printf("%ld",h);break;
case'-':h=x+y-z;printf("%ld",h);break;
case'*':h=x+y*z;printf("%ld",h);break;
case'/':h=x+y/z;printf("%ld",h);break;
}
break;
case'-':
switch(b){
case'+':h=x-y+z;printf("%ld",h);break;
case'-':h=x-y-z;printf("%ld",h);break;
case'*':h=x-y*z;printf("%ld",h);break;
case'/':h=x-y/z;printf("%ld",h);break;
}
break;
case'*':
switch(b){
case'+':h=x*y+z;printf("%ld",h);break;
case'-':h=x*y-z;printf("%ld",h);break;
case'*':h=x*y*z;printf("%ld",h);break;
case'/':h=x*y/z;printf("%ld",h);break;
}
break;
case'/':
switch(b){
case'+':h=x/y+z;printf("%ld",h);break;
case'-':h=x/y-z;printf("%ld",h);break;
case'*':h=x/y*z;printf("%ld",h);break;
case'/':h=x/y/z;printf("%ld",h);break;
}
break;
default:printf("错误符号!");
}
return 0;
}
一个三位整数,如果满足条件:个位数的立方+十位数立方+百位数立方==这个数,那么称之为“水仙花数”
编程判断一个三位整数是不是水仙花数。
输入一个三位整数
是则输出YES,不是输出 NO (注意是大写字母),如果输入不是三位数,不处理。
153
YES
#include
#include
#include
int main()
{
int n;
scanf("%d",&n);
int a,b,c;
if(n>=100&&n<=999);
{
a=n/100;
b=(n%100/10);
c=n%10;
}
if(n==a*a*a+b*b*b+c*c*c)
printf("YES");
else
printf("NO");
return 0;
}
本题的要求很简单,就是求N
个数字的和。麻烦的是,这些数字是以有理数分子/分母
的形式给出的,你输出的和也必须是有理数的形式。
输入第一行给出一个正整数N
(≤100)。随后一行按格式a1/b1 a2/b2 ...
给出N
个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分
,其中分数部分写成分子/分母
,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。
5
2/5 4/15 1/30 -2/60 8/3
3 1/3
2
4/3 2/3
2
3
1/3 -1/6 1/8
7/24
#include
#include
int M(int a,int a1) {
int c, m, n;
m = fmax(a, a1);
n = fmin(a, a1);
while (n != 0) {
c = m % n;
m = n;
n = c;
}
return m;
}//辗转相除法,返回最大公因数
int main(void) {
int n, sum = 0;
int a, b;//a表示分子b表示分母
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {//n次,每次读一个分数
int a1, b1;
scanf("%d/%d", &a1, &b1);
sum += a1 / b1;
a1 = a1 % b1;//提出整数部分
if (i == 1) {
a = a1, b = b1;//第一次时初始化
} else {
int m = b * b1 / M(b, b1);
//通过最大公因数找到最小公倍数
a = a * (m / b) + a1 * (m / b1);
b = m;
sum += a / b;
a = a % b;
//通分计算
}
while (1) {
int l = M(a, b);
if (l == 1) {
break;
}
a /= l;
b /= l;
}//while循环约分分子分母使其最简,每次都要操作避免数据溢出
}
if (sum == 0) {
if (a == 0) {
printf("0\n");
} else {
printf("%d/%d", a, b);
}
} else {
printf("%d", sum);
if (a == 0) {
printf("\n");
} else {
printf(" %d/%d", a, b);
}
}//最后判断并输出
return 0;
}