zzulioj1039答案C语言,Zzulioj.1033:五级系统评分-1043:最高(C语言vs Python),ZZULIOJ1033,制,成绩,最大值,VsPython...

1033: 五级制成绩

题目描述

给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下:

90分及以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。

输入 一个百分制成绩(0~100的整数)。

输出 输出对应的等级。

样例输入 Copy

100

样例输出 Copy

A

#include

int main()

{

int n;

scanf("%d",&n);

switch(n/10)

{

case 10:

case 9:printf("A");break;

case 8:printf("B");break;

case 7:printf("C");break;

case 6:printf("D");break;

default:printf("E");break;

}

}

Vs

#python

n = int(input())

if n // 10 == 10 or n // 10 == 9:

print("A")

elif n // 10 == 8:

print("B")

elif n // 10 == 7:

print("C")

elif n // 10 == 6:

print("D")

else:

print("E")

1034: 夏季促销

题目描述

商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。

输入 输入一个实数,表示消费金额。

输出 输出一个实数,表示用户实际需要支出的数目,保留两位小数。

样例输入 Copy

5100

样例输出 Copy

4080.00

#include

int main(void)

{

double a;

scanf("%lf",&a);

if(a>=500&&a<1000)

a=a*0.95;

else if(a>=1000&&a<3000)

a=a*0.9;

else if(a>=3000&&a<5000)

a=a*0.85;

else if(a>=5000)

a=a*0.8;

else

a=a*1;

printf("%.2f",a);

}

Vs

#python

a = float(input())

if a >= 500 and a < 1000:

a = a * 0.95

elif a >= 1000 and a < 3000:

a = a * 0.90

elif a >= 3000 and a < 5000:

a = a * 0.85

elif a >= 5000:

a = a * 0.80

else:

a = a * 1

print("%.2f" %a)

1035: 分段函数求值

题目描述

已知:y是x的函数,

当x

当x>=-2,且x<3时,y=5-|3x+2|;

当x>=3时,y=3x+4

输入 任意输入一个整数x。

输出 输出为一个整数,即x对应的函数值。

样例输入 Copy

2

样例输出 Copy

-3

#include

#include

int main(void)

{

int x, y;

scanf("%d",&x);

if(x

y=7-2*x;

else if(x>=3)

y=3*x+4;

else

y=5-fabs(3*x+2);

printf("%d",y);

}

Vs

#python

import math

x = int(input())

if x < -2:

y = 7 - 2 * x

elif x >= 3:

y = 3 * x + 4

else:

y = 5 - math.fabs(3 * x + 2)

print("%d" %y)

1036: 某年某月有多少天

题目描述

给你一个年份和月份,求该月有多少天

输入 一个年份(正整数),一个月份(1-12),中间有一个空格隔开

输出 该月的天数,单独占一行。

样例输入 Copy

2012 2

样例输出 Copy

29

#include

int main(void)

{

int m, n;

scanf("%d%d",&m, &n);

switch(n)

{

case 4:

case 6:

case 9:

case 11:printf("30\n");break;

case 2:

if(m%400==0||m%100!=0&&m%4==0)

printf("29\n");

else

printf("28\n");break;

default:printf("31\n");

}

}

Vs

#python

m , n = map(int,input().split())

if n == 4 or n == 6 or n == 9 or n == 11 :

print("30")

elif n == 2:

if m % 400 == 0 or (m % 100 != 0 and m % 4 == 0):

print("29")

else:

print("28")

else:

print("31")

1037: 四则运算

题目描述

给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果

输入 表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符

输出 如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input!"。最后结果小数点后保留两位。

样例输入 Copy

1.0 + 1.0

样例输出 Copy

2.00

提示

除数是0,用|s2|<1e-10(即10的-10次方)判断

#include

#include

int main(void)

{

char op;

double x, y;

scanf("%lf %c %lf",&x, &op, &y);

switch(op)

{

case'+':printf("%.2f\n",x+y);break;

case'-':printf("%.2f\n",x-y);break;

case'*':printf("%.2f\n",x*y);break;

case'/':

if(fabs(y)<1e-10)

printf("Wrong input!\n");

else

printf("%.2f\n",x/y);break;

default:printf("Wrong input!\n");break;

}

return 0;

}

Vs

#python

import math

a = input().split()

x = float(a[0])

op = str(a[1])

y = float(a[2])

if op == '+':

print("%.2f" %(x + y))

elif op == '-':

print("%.2f" %(x - y))

elif op == '*':

print("%.2f" %(x * y))

elif op == '/':

if(math.fabs(y) < 1e-10):

print("Wrong input!")

else:

print("%.2f" %(x // y))

else:

print("Wrong input!")

1038: 绝对值最大

题目描述

输入3个整数,输出绝对值最大的那个数。

输入 输入包含3个int范围内的整数,用空格隔开。

输出 输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。

样例输入 Copy

1 2 -3

样例输出 Copy

-3

#include

#include

int main()

{

int a, b, c, max;

scanf("%d %d %d",&a,&b,&c);

max=(abs(a)>=abs(b))?a:b;

max=(abs(max)>=abs(c))?max:c;

printf("%d",max);

}

Vs

#python

import math

a , b , c = map(int,input().split() )

max = a

if math.fabs(max) < math.fabs(b):

max = b

if math.fabs(max) < math.fabs(c):

max = c

print(max)

1039: n个数求和

题目描述

输入一个整数n和n个整数,输出这n个整数的和。

输入 输入有两行:第一行是一个正整数n,第二行是n个整数。

输出 输出一个整数,即n个数的和。输出单独占一行。

样例输入 Copy

3

7 3 2

样例输出 Copy

12

#include

int main(void)

{

int i, m, n, sum;

scanf("%d",&n);

i=1;

sum=0;

while(i<=n)

{

scanf("%d",&m);

sum+=m;

i++;

}

printf("%d",sum);

}

Vs

#python

n = int(input())

a=input().split()

sum = i = 0

for m in range(n) :

m = int(a[i])

sum += m

i += 1

print(sum)

1040: 数列求和1

题目描述

输入一个整数n,输出数列1+1/3+1/5+……前n项的和。

输入 输入只有一个正整数n。

输出 结果保留2位小数,单独占一行

样例输入 Copy

3

样例输出 Copy

1.53

#include

int main()

{

int n,i;

double sum;

scanf("%d",&n);

sum=0.0;

for(i=1;i<=n;i++)

{

sum=sum+1.0/(2*i-1);

}

printf("%.2lf\n",sum);

}

Vs

#python

n = int(input())

sum = 0.0

j = 1

for i in range(n):

sum += 1.0 / (2 * j - 1)

j += 1

print("%.2f" %sum)

1041: 数列求和2

题目描述

输入一个整数n,输出数列1-1/3+1/5-……前n项的和。

输入 输入只有一个整数n。

输出 结果保留2为小数,单独占一行。

样例输入 Copy

3

样例输出 Copy

0.87

#include

int main()

{

int n,i,deno;

double sum,flag;

scanf("%d",&n);

sum=0.0;

flag=1.0;

deno=1;

for(i=1;i<=n;i++)

{

sum=sum+flag/deno;

deno+=2;

flag=-flag;

}

printf("%.2lf\n",sum);

}

Vs

#python

n = int(input())

sum = 0.0

flag = deno = 1

for i in range(n):

sum += flag / deno

deno += 2

flag = -flag

print("%.2f" %sum)

1042: 数列求和3

题目描述

求1-2/3+3/5-4/7+5/9-6/11+…的前n项和,结果保留3位小数。

输入 输入正整数n(n>0)。

输出 输出一个实数,保留3位小数,单独占一行。

样例输入 Copy

5

样例输出 Copy

0.917

#include

#include

int main()

{

int n,i,deno;

double sum,flag;

scanf("%d",&n);

sum=0.0;

flag=1.0;

deno=1;

for(i=1;i<=n;i++)

{

sum=sum+i*flag/deno;

deno+=2;

flag=-flag;

}

printf("%.3lf\n",sum);

}

Vs

#python

n = int(input())

sum = 0.0

flag = deno = j = 1

for i in range(n):

sum += j * flag / deno

deno += 2

flag = -flag

j += 1

print("%.3f" %sum)

1043: 最大值

题目描述

输入一个整数n和n个整数,输出这n个整数的最大值。

输入 输入有两行:第一行是一个正整数n,第二行是n个整数。

输出 输出包含一个整数,即n个数中的最大值,单独占一行。

样例输入 Copy

4

3 7 5 6

样例输出 Copy

7

/*方法一*/

#include

int main()

{

int n,i,max,m;

scanf("%d",&n);

scanf("%d",&max);

for(i=1;i<=n-1;i++)

{

scanf("%d",&m);

max=(max>m)?max:m;

}

printf("%d",max);

}

/*方法二*/

#include

#include

int main()

{

int n,i,max,m;

scanf("%d",&n);

max = INT_MIN;

/*在limits头文件中,INT_MIN表示无穷小,对应INT_MAX表示无穷大*/

for(i=1;i<=n;i++)

{

scanf("%d",&m);

max=(max>m)?max:m;

}

printf("%d",max);

}

Vs

#python

n = int(input())

a = input().split()

j = 0

max = float("-inf")

#对max定义负的无穷大,对应正的无穷大为"inf"

for i in range(n):

if int(a[j]) > max :

max = int(a[j])

j += 1

print(max)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值