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); }
运行结果