#include <stdio.h> int main() { // 定义相乘数字i,j以及结果result int i, j, result; /* * 使用for循环解决本题相对简单哦~ * 小编偷偷的将源码放在任务“不会了怎么办”中了哦~ * 小编希望童鞋们独立完成哦~ */ for(i=9;i>0;i--) { for(j=1;j<=i;j++) printf("%d * %d = %d\t",i,j,i*j); printf("\n"); } return 0; }
用的是什么吃软件啊 想要
//如果是1月的话,那么day的值是多少,那就是一年中的第多少天,没必要再去找之前有几个月 //用month的值减去1,就得到了month的前面有多少个月,代入switch去累加本月的day前面的天数 switch(month-1) { case 11:day+=30;//month是12月,那么前面就有11个月,11月本身是30天 case 10:day+=31;//month是12月,那么前面就有10个月,10月本身是31天,以此类推 case 9:day+=30;//没有break;所以程序运行本case之后,下面的所有还会运行一遍,这样就累加起来了 case 8:day+=31; case 7:day+=31; case 6:day+=30; case 5:day+=31; case 4:day+=30; case 3:day+=31; //现在的公历历法关于闰年的规定是能被4整除但不能被100整除,或者能被400整除。 //最早的公历历法关于闰年的规定是能被4整除——了解一下即可,不是本题意思。 case 2:if((year%4==0 && year%100) || year%400==0) day+=29; else day+=28; case 1:day+=31; } printf("2008年8月8日是该年的第%d天",day);
emm,看运行结果那里的英文好像可以勉强猜出错误。可以叫你大佬吗,一下就学到6去了,我还在4.可以帮我看看我的代码哪错了吗、(这是4-17求2008年8月8日是这一年的第几天的代码,你可以复制帮我看下吗,为什么我是254。。)
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int j;
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/for(j=1;j<month;j++){
switch(month){
case 1:day=day+31;break;
case 2:break;
case 3:day=day+31;break;
case 4:day=day+30;break;
case 5:day=day+31;break;
case 6:day=day+30;break;
case 7:day=day+31;break;
case 8:day=day+31;break;
case 9:day=day+30;break;
case 10:day=day+31;break;
case 11:day=day+30;break;
case 12:day=day+31;break;
}
}
int i;
i=year%4==0&&year%100!=0;
if(i==1) {
printf("是该年中的第%d天",day=day+29);
}
else {
printf("是该年的第%d天",day=day+28);
}
return 0;
}
找到原因了。原来是自动检查里,要求输出的样式必须是"%d*%d=",数字和*号之间不能有空格。嗯,好吧。
emm不是说for后面不用分号吗,分号当执行体又是什么意思。而且你不打{}如果系统把printf("\n");也识别到子循环里面去了,那不就子循环循环一次就换行了,不懂。。。
谁说for循环后面的代码必须有大括号{}呢?有代码就可以了,甚至就算是一个光秃秃的分号也符合语法。
后面的\t是水平制表符,相当于是按一下tab键。
你这第二个for后面没有{},怎么可能循环printf,而且\t是什么东西,看不懂