C语言 每日一题 PTA 10.27 day5
1.高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10 % 则处200元罚款;
若达到或超出50 % ,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
输入格式 :
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
输出格式 :
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x% .Ticket 200”;
若应吊销驾驶证,则输出“Exceed x% .License Revoked”。其中x是超速的百分比,精确到整数。
代码实现
#include<stdio.h>
int main()
{
double s = 0;//设置一个s变量来表示超速的程度,通过s来判断处罚
double n, max;//n代表车速,max代表限速
scanf("%lf%lf", &n, &max);
s = (n - max) / max;
if (s >= 0.1 && s < 0.5)
printf("Exceed %.0f%%. Ticket 200", s * 100);
else if (s >= 0.5)
printf("Exceed %.0f%%. License Revoked", s * 100);
else
printf("OK");
return 0;
}
运行结果
2.统计学生成绩
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
输入格式 :
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式 :
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
代码实现
int main()
{
int num = 0;
printf("请你输入你想输入的数据个数\n");
scanf("%d", &num);
float scar = 0;
int A=0, B=0, C=0, D=0,E=0;
for (int i=0; i<num; i++)
{
printf("这是第%d次输入\n", i+1);
scanf("%f", &scar);
if (scar >= 90)
{
A++;
}
else if (scar >= 80&&scar < 90)
{
B++;
}
else if (scar >= 70 && scar < 80)
{
C++;
}
else if (scar >= 60 && scar < 70)
{
D++;
}
else
{
E++;
}
}
printf("A:%d B:%d C:%d D:%d", A, B, C, D);
return 0;
}
运行结果:
3.求N分之一序列前N项和
本题要求编写程序,计算序列 1 + 1 / 2 + 1 / 3 + ... 的前N项之和。
输入格式 :
输入在一行中给出一个正整数N。
输出格式 :
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
要点:将i的类型设置为double型,不然不方便计算1/i的值;
代码实现
int main()
{
int N = 0;
printf("请您输入N的值\n");
scanf("%d", &N);
double sum = 0;
for (double i = 1; i <= N; i++)
{
sum += 1/i;
}
printf("%.6lf", sum);
}
运行结果