目录
一、
//获取月份天数
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
//输入描述:
//多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
//输出描述:
//针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
题解:
判断闰年方法:四年一闰,百年不闰,四百年一闰
第一种方法我选择使用简单的switch,根据输入的年和月分支选择
第二种方法我选择用一个数组存储一年中每个月的月份,再根据函数判断其是否是闰年,如果是闰年,在数组下标为2的元素取出来+1
#include <stdio.h>
int main() {
int a, b;//a 年份 b:月份
while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
switch (b) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("%d\n", 31);
break;
case 4:
case 6:
case 9:
case 11:
printf("%d\n",30);
break;
case 2:
if((a%4==0)&&(a%100!=0)||(a%400==0)){
printf("%d\n",29);
}
else {
printf("%d\n",28);
}
default:
break;
}
}
return 0;
}
//第二种
#include <stdio.h>
int is_leap_year(int x) {
return ((x % 4 == 0) && (x % 100 != 0) || (x % 400 == 0));
}
int main() {
int a, b;
int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
int day = days[b];
if (is_leap_year(a) && b == 2) {
day++;
}
printf("%d\n", day);
}
return 0;
}
二、
KiKi非常喜欢网购,在一家店铺他看中了一件衣服,他了解到,如果今天是“双11”(11月11日)则这件衣服打7折,“双12” (12月12日)则这件衣服打8折,如果有优惠券可以额外减50元(优惠券只能在双11或双12使用),求KiKi最终所花的钱数。
输入描述:
一行,四个数字,第一个数表示小明看中的衣服价格,第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券(有优惠券用1表示,无优惠券用0表示)。 输出描述: 一行,小明实际花的钱数(保留两位小数)。(提示:不要指望商家倒找你钱)
题解:
求所付金额的时候要注意金额不能为负数
50*flag:当flag为1的时候使用优惠卷,为0则不使用
#include <stdio.h>
int main() {
double p = 0.0;
int m = 0;
int d = 0;
int flag = 0;
while (scanf("%lf %d %d %d", &p, &m, &d, &flag) != EOF) {
if (m == 11 && d == 11) {
p = p * 0.7 - 50 * flag;
}
else if (m == 12 && d == 12) {
p = p * 0.8 - 50 * flag;
}
}
if (p < 0.0)
p = 0.0;
printf("%.2lf\n", p);
return 0;
}
三、
输入一个字符串,长度小于等于100,然后将数组逆置输出 如(hello word)->(drow olleh)
题解:
该题我选择用gets()函数读取字符串;
scanf读取字符的时候,遇到空格(“ ”)会停止读入 ,当选择使用(%[^\n])时,scanf读取字符直到遇见“\n”
#include<stdio.h>
int main() {
char a[1001];
gets(a);
//scanf("%[^\n]",arr);
int len = strlen(a);
int left = 0;
int right = len - 1;
while (left < right) {
char t = a[left];
a[left] = a[right];
a[right] = t;
left++;
right--;
}
printf("%s\n", a);
return 0;
}
感谢阅读,如有不足欢迎指正!!!