| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:帮我看一篇作业(很短的)
只看楼主 加入收藏
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
结帖率:60%
收藏
 问题点数:0 回复次数:7 
帮我看一篇作业(很短的)
程序代码:
main()
{
    int a;
    for (a=2000;a<=2500;a++)
    {
        if (a%4!=0) break;
        else
        {
            if (a%100!=0)
            printf("%d",a);
            else
            {
                if (a%400=0)
                printf("%d",a);
                else
                break;
              }
         }

       }
     getch();
}

编译系统是wintc 因此头文件不用加#include<stdio> 了   目的就是实现:输出2000-2500所有的闰年,  我刚开始学C 自己写的 一定有很多错误,希望给出正确代码
搜索更多相关主题的帖子: 作业 
2010-07-15 22:43
mojianfei201
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-15
收藏
得分:0 
if (a%4!=0) break;
a==2001的时候就跳出了整个循环了.
正确的:
#include <stdio.h>
main()
{
    int year;
    int i=1;
    for(year=2000;year<=2500;year++)
    {
        if((year%4==0&&year%100!=0)||year%400==0)
        {
            printf("year[%d]=%d,",i++,year);
        }
        if(i%5==0)printf("\n");
    }
    getch();
}
2010-07-15 23:07
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
回复 2楼 mojianfei201
你的算法好像不对。第一步:判断是否可以被4整除若不可以则进行下个循环,可以择接着判断是否可以被一百整除,若可以则直接进行下个循环反之则输出此年,若a可以被100整除,再判断是否可以被400整除若可以则输出此年,反之则直接进行下个循环。余下的都是非闰年(这是书上的算法思路)

初生牛犊,望多多照顾!
2010-07-16 09:16
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
不用break 要用就用continue
大家都说好
if (a%400=0)
这个要注意

[ 本帖最后由 do8do8do8 于 2010-7-16 09:50 编辑 ]

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-16 09:49
irwin520
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2010-7-13
收藏
得分:0 
main()
{
    int a;
    for (a=2000;a<=2500;a++)
    {
        if (a%4!=0) continue;
        else
        {
            if (a%100!=0)
            printf("%d\t",a);
            else
            {
                if (a%400==0)
                    printf("%d\t",a);
                else
                    continue;
            }
         }
       }
     getch();
}
针对你的程序,要将break改为continue语句,不是退出循环,而是直接进行下次循环。
2010-07-16 10:25
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
我自己已近解决了
程序代码:
main()
{
    int year;
    for (year=2000;year<=2500;year++)
    {
        if (year%4==0)
        {
            if (year%100!=0)printf("%d ",year);
            else
            {
                if (year%400==0)printf("%d ",year);
            }
        }
    }
    getch();
}
continue 我还没学过

初生牛犊,望多多照顾!
2010-07-16 10:36
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
回复 5楼 irwin520
你的也对;

初生牛犊,望多多照顾!
2010-07-16 10:41
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
bool isLeap(int year)
{
    return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}
int main()
{
    int year;
    for (year = 2000; year <= 2500; year++)
    {
        if(isLeap(year))
            printf("%d\n", year);
    }
    getch();
    return 0;
}


[ 本帖最后由 zisefengye 于 2010-7-16 22:26 编辑 ]
2010-07-16 22:24
快速回复:帮我看一篇作业(很短的)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015644 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved