-
#include <stdio.h>
int main()
{
int i = 2008,sum=0;
int m = 8;
int d = 8;
switch(m-1){
case 12: sum+=31;
case 11 : sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(i%4==0&&i%100!=0||i%400==0)
sum+=29;
else sum+=28;
case 1:sum+=31;break;
}
printf("%d年%d月%d日是该年的第%d天,",i,m,d,sum+d);
return 0;
}
一些关于上面代码的解释:
1.为什么是m-1? 因为m月之前的天数需要完整的加入sum里,m月的天数(即m月过啦几天)只需要在最后的sum中加上d就可以了(倒数第三行斜体部分);
2.这里巧妙地没有使用break,利用switch穿透和倒加运算得到了结果。
在我的代码(思路)中一定要记得加上(break),不然会错误;
第二十九行用==和%
查看全部 -
#include <stdio.h>
float cost(int km, int timing) {
float money;
if (km <= 3) {
money = 14;
} else {
if ((timing>=23 && timing<=24) || (timing>=1 && timing<5)) {
money = 0.2 * (km - 3) * 2.3 + 13 + 1;
} else {
money = (km - 3) * 2.3 + 13 + 1;
}
}
return money;
}
int main() {
printf("小明打车的费用%.1f", cost(12, 9) + cost(12, 18));
return 0;
}
查看全部 -
#include <stdio.h>
/*
* 请使用递归函数完成本题
* 小编已将正确代码放在左侧任务的“不知道怎么办”里
* 小编希望各位童鞋独立完成哦~
*/
int dfs(int n) {
return n == 1 ? 10 : dfs(n - 1) + 2;
}
//这里是的话返回10,不是的话返回函数递推,妙
int main()
{
printf("第5个人的年龄是%d岁", dfs(5));
return 0;
}
查看全部 -
c语言中的除法直接可以表示取整,如5/2==2
查看全部 -
for( 定一 ; 判二 ; 执行三 )
查看全部 -
不熟
查看全部 -
在定义中不允许连续赋值
查看全部 -
标识符的第一个字符必须是字母或下划线
查看全部 -
使用break语句时注意以下几点:
1、在没有循环结构的情况下,break不能用在单独的if-else语句中。
2、在多层循环中,一个break语句只跳出当前循环。
为真跳出循环
查看全部 -
swith穿透:在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句;
switch后面的表达式语句只能是整型或者字符类型;
各case和default子句的先后顺序可以变动,而不会影响程序执行结果;
default子句可以省略不用。
switch()后没有分号。
查看全部 -
break语句与continue语句的区别是:break是跳出当前整个循环,continue结束本次循环开始下一次循环。 (仅对循环生效,对if等其他结构不生效)
查看全部 -
1不是素数;
==表示等于,=表示赋值(第九行);
第十二行代码的含义:防止如一下这类情况的出现,eg:m等于6,n等于2,求余等于0但是m不是素数。保证输出的m一定是素数。
别再忘了第二条!!!
在没有循环结构的情况下,break不能用在单独的if-else语句中;
对于第5条,也就是说continue只能用在循环体内,break可用在除循环体以外的其他类型的语句中。
查看全部 -
printf("%d*%d=%d\t",i,j,result);
牢记复习上面这行c语言的书写格式和方法。
查看全部 -
根据要输出的循环阵的特点(比如:1.每几个*换行,2.相邻两行*的变化特点是什么,增加几个,减少几个)来设计循环代码。
查看全部
举报