一、车牌限行(分支结构)
题目:
问题描述:
受雾霾天气影响,某市决定当雾霾指数超过设定值时对车辆进行限行,假设车牌号全为数字,且长度不超过6位,限行规则如下:
(1)限行时间段只包括周一至周五,周六周日不限行;
(2)如果雾霾指数低于200,不限行;
(3)如果雾霾指数大于等于200且低于400,每天限行两个尾号的汽车,周一限行1和6,周二限行2和7,周三限行3和8,周四限行4和9,周五限行5和0;
(4)如果雾霾指数大于等于400,每天限行五个尾号的汽车,周一、周三和周五限行1,3,5,7,9,周二和周四限行0,2,4,6,8。
现在给出星期几、雾霾指数和车牌号,判断该车牌号是否限行。
输入说明:输入分为三个整数,第一个整数表示星期几(1~7,1表示周一,2表示周二,依次类推,7表示周日),
第二个整数表示雾霾指数(0~600),第三个整数表示车牌号,整数之间用空格分隔。
输出说明:输出为两个部分,第一部分为车牌最后一位数字,第二部分为限行情况,限行输出yes,不限行输出no。
解答:
#include<stdio.h>
int main()
{
int n, t, x;
scanf("%d%d%d", &x, &t, &n); //x为星期几; t为污染度; x为车牌;
n = n % 10; //取最后一位车牌号
printf("%d ", n); //输出车牌号
if (x == 6 || x == 7) printf("no");
else{
if (t < 200){
printf("no");
}
else if (t >= 200 && t < 400){
if (n == x || n == x + 5 || n == x - 5){
printf("yes");
}
else printf("no");
}
else{
if (n % 2 == x % 2)
printf("yes");
else
printf("no");
}
}
return 0;
}
二、阶梯电价(分支结构)
题目:
问题描述: 电价分三个档次,[0,110]度电,每度电0.5元;(110,210]度电,超出110部分每度电0.55元,超过210度电,超出210部分每度电0.70元,给出一个家庭一月用电量,请计算出应缴的电费(四舍五入,保留小数点后两位小数)。
输入说明:输入数据为一个正实数,表示一月用电量
输出说明:输出应缴电费,保留2位小数。
解答:
#include <stdio.h>
int main(void)
{
float quantity;
float price;
float a = 0.5;
scanf_s("%f", &quantity);
if (quantity <= 110) {
price = quantity * a;
}
else if (quantity <= 210) {
price = 110 * a + (quantity - 110) * 0.55;
}
else {
price = 110 * a + 100 * 0.55 + (quantity - 210) * 0.70;
}
printf("%.2f",price);
return 0;
}
三、计算某月天数(分支结构)
题目:
问题描述:每年的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,闰年2月29天,其他年份2月28天,给定年份和月份求该月的天数
输入说明:输入由两个正整数a和b构成,a表示年份,b表示月份,a和b之间用空格分隔
输出说明:根据年份和月份计算该月天数并输出
解答:
#include <stdio.h>
int main(void)
{
int a = 0;
int b = 0;
int c;
scanf_s("%d %d", &a, &b);
switch (b)
{
case 1:printf("31");break;
case 3 :printf("31");break;
case 5 :printf("31");break;
case 7 :printf("31");break;
case 8 :printf("31");break;
case 10 :printf("31");break;
case 12 :printf("31");break;
case 4 :printf("30");break;
case 6 :printf("30");break;
case 9 :printf("30");break;
case 11 :printf("30");break;
default
if(a % 400 == 0 || (a % 4 == 0 && a % 100 != 0)) {
printf("29");
}
else {
printf("28");
}
}
return 0;
}
四、PM2.5
题目:
问题描述:
给出一组PM2.5数据,按以下分级标准统计各级天气的天数,并计算出PM2.5平均值。
PM2.5分级标准为:
- 一级优(0<=PM2.5<=50)
- 二级良(51<=PM2.5<=100为)
- 三级轻度污染(101<=PM2.5<=150)
- 四级中度污染(151<=PM2.5<=200)
- 五级重度污染(201<=PM2.5<=300)
- 六级严重污染(PM2.5>300)
输入说明:输入分为两行,第一行是一个整数n表示天数(1<n<=100);第二行为n个非负整数Pi(0<=Pi<=1000),表示每天的PM2.5值,整数之间用空格分隔。
输出说明:输出两行数据,第一行为PM2.5平均值,结果保留2位小数;第二行依次输出一级优,二级良,三级轻度污染,四级中度污染,五级重度污染,六级严重污染的天数。
解答:
#include <stdio.h>
int main(void)
{
int n = 0, P[100], sum = 0;
scanf_s("%d", n);
for (int i = 0;i < n;i++){
scanf_s("%d", &P[i]);
sum += P[i];//输入且求和
}
float average;
average = (float)sum / n;
printf("%.2f\n", average);
int L[6] = { 0,0,0,0,0,0 };
for (int i = 0;i < n;i++)
{
if (P[i] >= 0 && P[i] <= 50) {
L[0]++;
}
else if (P[i] >= 51 && P[i] <= 100) {
L[1]++;
}
else if (P[i] >= 101 && P[i <= 150]) {
L[2]++;
}
else if (P[i] >= 151 && P[i] <= 200) {
L[3]++;
}
else if (P[i] >= 201 && P[i] <= 300) {
L[4]++;
}
else if (P[i] >= 300) {
L[5]++;
}
printf("%d %d %d %d %d %d", L[1], L[2], L[3], L[4], L[5]);
return 0;
}
}
五、完全平方数
题目:
**问题描述:**若一个整数n能表示成某个整数m的平方的形式,则称这个数为完全平方数。写一个程序判断输入的整数是不是完全平方数。
输入说明:输入数据为一个整数n,0<=n<10000000。
输出说明:如果n是完全平方数,则输出构成这个完全平方数的整数m,否则输出no。
解答:
#include<stdio.h>
#include<math.h>
int main(void)
{
float m = 0;
int n = 0;
int t;
scanf_s("%d", &n);
m = sqrt(n);
t = floor(m);
if (m - t == 0){
printf("%d", m);
}
else if (m != floor(m)) {
printf("no");
}
return 0;
}
六、寻找最大整数
题目:
问题描述:从键盘输入四个整数,找出其中的最大值并将其输出。
输入说明:输入4个整数,用空格分隔。
输出说明:输出值最大的一个整数。
解答:
#include <stdio.h>
int main(void)
{
int a, b, c, d;
int m, n;
scanf_s("%d %d %d %d", &a, &b, &c, &d);
if (a > b) {
m = a;
}
else {
m = b;
}
if (c > d) {
n = c;
}
else {
n = d;
}
if (m > n) {
printf("%d", m);
}
else {
printf("%d", n);
}
return 0;
}