| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1067 人关注过本帖
标题:今天自己写的两款程序,拿出来给大家看看
只看楼主 加入收藏
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:13 
今天自己写的两款程序,拿出来给大家看看
今天自己写了两款软件,拿出来给大家看看,刚学c语言没多久,希望大家点评点评。懂行的看门道,行外的看热闹。
判断闰年:
#include "stdio.h"
void main()
{
    int year,mod1,mod2,mod3;
    printf("please type a year number.\n");
    scanf("%d",&year);
    mod1=year%4;
    mod2=year%100;
    mod3=year%400;
    if (mod1==0)
        {
        if (mod2==0)
            {
            if (mod3==0)
            {
            printf("this number is runnian.\n");
            }
            else
            {
            printf("this year is not runnian.\n");
            }
            }
        else
        {
        printf("the year is runnian.\n");
        }
        }
    else
        {
        printf("the year is not a runian.\n");
        }
        
}
输出任意数内的所有素数
#include "stdio.h"
void main()
{
    void qiushusu(int j);
    int n,number;
    scanf("%d",&number);
    for(n=2;n<=(number-1);n++)
    {
        qiushusu(n);
    }
}
void qiushusu(int j)
{
int i,mod,a;
a=0;
for (i=2;i<=(j-1);i++)
    {
    mod=j%i;
    if (mod==0)
        {
        a=a+1;
        }
    }
if (a==0)
    printf("%d\n",j);
}
搜索更多相关主题的帖子: 今天 void include please number 
2011-02-28 13:24
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:18 
第一个程序说明楼主对闰年的判断条件有误解,应该是:能被4整除但不能被100整除,或者能被400整除。
所以,第一个程序最好改为:
void main(void)
{
    int year;
    printf("please type a year number.\n");
    scanf("%d",&year);

    if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
        printf("the year is runnian.\n");
    else
        printf("the year is not runnian.\n");
}
第二个程序的问题更多:
#include "stdio.h"
void main()
{
    void qiushusu(int j); //这样声明的函数只能被主函数调用,这个函数的应用范围受限啊。
    int n,number;
    scanf("%d",&number);
    for(n=2;n<=(number-1);n++)
    {
        qiushusu(n);
    }
}
void qiushusu(int j)
{
int i,mod,a;
a=0;
for (i=2;i<=(j-1);i++)
    {
    mod=j%i;
    if (mod==0)
        {
        a=a+1; //上面的条件如果能成立的话,i一定就不是质数了,那么也就没有必要再循环下去,可以加一个break;
        }
    }
if (a==0)
    printf("%d\n",j); //在子函数中,尽量不要“输出”,因为输出的结果在屏幕上,而定义函数的本意是帮着计算、处理数据,结果一般由调用它的函数做进一步的处理。
}

我按你的思路给一个程序:
#include<stdio.h>

int isPrime(int n); //这是声明,在函数体外声明,可以被这个.c文件中所有的其它函数调用。
//另外,这个函数的功能是:判断n是否是质数,如果是,则返回“真值”,否则返回“假值”
int isPrime(int n)
{
    int i;

    for(i = 2; i < n; i++) //这里应该有更省时间的办法,鉴于要和你的思路差别不太大,就这样写了
        if(n % i == 0)
            break;

    return i >= n; //可以表示成return i == n;
}

void main(void)
{
    int n,number;
    scanf("%d",&number);
    for(n=2;n < number; n++)
        if(isPrime(n))
            printf("%d ", n);
}
对于不在isPrime()函数中输出的原因,在这里再说一下:
比如说,关于哥德巴赫猜想的验证问题,要验证两个数都是质数,但在验证时并不需要输出(比如:一个是质数,另一个不是质数)。所以,isPrime()只需要返回判断的结果就行了,至于输出的问题,应该交给调用它的函数处理。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-28 14:26
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
当一名对得起学生学费的老师,一直是我的目标!我会更努力的!就凭你》???
2011-02-28 14:34
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:1 
以下是引用wujieru在2011-2-28 14:34:19的发言:

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!就凭你》???
我教学的对象一直是初学者,要面对计算机知识很匮乏、根本没有编程能力或刚刚开始懂一点编程的学生。学习的过程有一个必然的规律,相信您也是一步一步走过来的。
我对网友问题的回答,很多时候都不是“最佳答案”或者“终极答案”,因为他们还没有那个能力。如果那样回答,反而会严重的打击他们的兴趣和学习热情。
因为我知道计算机世界是浩瀚的宇宙,里面布满陷阱和困难;因为我也知道有很多年轻人,他们对C语言,对编程充满热情,只是刚刚开始起步;所以,我只想能为他们扫清阻挡在他们面前的巨石(这对于过来人而言,只是不值一提的尘埃而已)。这就是我所说的对得起“学生学费”的意思,有些和大学里占相当比例的责任心不高的老师相比较而言的意思。
“隔行如隔山”,每个行当都有它自己的特点。
当然,我也知道中国一句古话:“无知者,无畏”。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-28 14:49
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:1 
对于楼主的第一个程序,楼主没有对闰年认识上的问题,我主要想表示的是,对于闰年的定义,可以直接“翻译”成计算机语言的形式,楼主的写法并不是好习惯。至少可读性不好。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-28 14:58
我是西瓜
Rank: 2
等 级:论坛游民
帖 子:61
专家分:97
注 册:2010-10-22
收藏
得分:0 
回复 4楼 犬虫门心
对于3楼完全可以忽视,他也就想华众取宠,让他一个人玩去,您却打了这么多字,不值的啊.
2011-02-28 15:48
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-02-28 16:10
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 7楼 cacker
完全同意7楼的意见!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-02-28 16:40
瑾凡
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:19
专家分:12
注 册:2010-9-13
收藏
得分:0 
都是吃饱了的!
2011-02-28 16:41
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:0 
以下是引用犬虫门心在2011-2-28 14:26:25的发言:
   return i >= n; //可以表示成return i == n;

为什么是
return i >= n; //可以表示成return i == n;
这和那个if判断有什么关系
2011-02-28 23:56
快速回复:今天自己写的两款程序,拿出来给大家看看
数据加载中...
 
   



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

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