|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
0. 用户输入年份,打印该年每个月的天数。
注:2 月份以外,除了 1、3、5、7、8、10 和 12 月份有 31 天,其它月份均是 30 天;闰年的 2 月份是 29 天,非闰年是 28 天。
程序实现如下图(注意打印格式):
我写的:
- #include <stdio.h>
- int main(){
- int years;
- printf("请输入一个年份:");
- scanf("%d", &years);
- if(years % 4 == 0 && years % 100 != 0 || years % 400 == 0){
- int run[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- for(int i = 0; i < 12; i++){
- printf("%i月份:%d天\n", i + 1, run[i]);
- }
- }else{
- int ping[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- for(int i = 0; i < 12; i++){
- printf("%i月份:%d天\n", i + 1,ping[i]);
- }
- }
- return 0;
- }
复制代码
问题出在了定义数组的地方。C语言中,定义数组时不能直接赋值,需要逐个元素赋值。
你可以改成这样:
- #include <stdio.h>
- int main(){
- int years;
- printf("请输入一个年份:");
- scanf("%d", &years);
- if(years % 4 == 0 && years % 100 != 0 || years % 400 == 0){
- int run[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- for(int i = 0; i < 12; i++){
- printf("%d月份:%d天\n", i + 1, run[i]);
- }
- }else{
- int ping[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- for(int i = 0; i < 12; i++){
- printf("%d月份:%d天\n", i + 1, ping[i]);
- }
- }
- return 0;
- }
复制代码
这样就可以正确地打印出每个月的天数了。注意在循环中,使用 `run[i]` 和 `ping[i]` 分别获取对应月份的天数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|