鱼C论坛

 找回密码
 立即注册
查看: 985|回复: 1

[已解决]C语言数组02

[复制链接]
发表于 2024-1-6 15:11:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}
最佳答案
2024-1-6 15:11:31
问题出在了定义数组的地方。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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-6 15:11:31 | 显示全部楼层    本楼为最佳答案   
问题出在了定义数组的地方。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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 17:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表