| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1954 人关注过本帖
标题:编完了个代码,大家给看看,还能不能精简
只看楼主 加入收藏
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
结帖率:92.86%
收藏
 问题点数:0 回复次数:26 
编完了个代码,大家给看看,还能不能精简
#include<stdio.h>
main()
{
    int i,j,k;
    scanf("%d",&i);
    for(j=3;j<=i;j++)
       {
           for(k=2;k<j;k++)
              {
                  if(j%k==0)                  
                     break;
                    else continue;
                 }
          if(k==j)
          printf("%d*",j);
          }
            
    }
求小于一个整数的所用素数
2016-03-23 21:30
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
#include <stdio.h>
void main()
{
    int i,j,k;
    scanf("%d",&i);
    
    for(j=3;j<=i;j++)  //难道2不是素数?
    {
        for(k=2;k<=j/2;k++)
        {
            if(j%k==0)  break;
        }
        if(k==j/2+1)  printf("%d*",j);
    }            
}

   唯实惟新 至诚致志
2016-03-23 21:39
Dirge_
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-3-23
收藏
得分:0 
精简?就是代码少呗?
程序代码:
#include<stdio.h>
main(){
    int i,j,k;
    scanf("%d",&i);
    for(j=2;j<=i;j++){
        for(k=2;k<j;k++)
            if(j%k==0) break;
        (k==j)&&(printf("%d ",j));
    }
}
2016-03-23 22:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
先寫一個判斷素數的函數!

授人以渔,不授人以鱼。
2016-03-24 10:55
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 2楼 qq1023569223
谢谢大神的指教,2应该是素数,没有考虑到,
2016-03-24 11:49
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 3楼 Dirge_
谢谢,学习了,这句(k==j)&&(printf("%d ",j));
在写实用程序的时候可以这样编吗?我是个新手,想请教一下
2016-03-24 11:55
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 4楼 TonyDeng
#include<stdio.h>
main()
{
    int i,j;
    scanf("%d",&i);
    for(j=2;j<=i/2;j++)
       if(i%j==0)
        break;
    if(j==i/2+1)
       printf("the number is a sushu",i);
       else printf("no sushu");
         
    }
这个可以吗,

[此贴子已经被作者于2016-3-24 12:04编辑过]

2016-03-24 12:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
送你一個函數吧:
程序代码:
bool IsPrime(unsigned short n)
{
    if (n % 2 == 0)
    {
        return n == 2;
    }
    if (n % 3 == 0)
    {
        return n == 3;
    }
    if (n % 5 == 0)
    {
        return n == 5;
    }

    for (unsigned short i = 7; i * i <= n; i += 2)
    {
        if (n % i == 0)
        {
            return false;
        }
    }

    return true;
}

授人以渔,不授人以鱼。
2016-03-24 12:06
luckhide
Rank: 5Rank: 5
来 自:青岛
等 级:职业侠客
帖 子:51
专家分:338
注 册:2016-3-19
收藏
得分:0 
回复 8楼 TonyDeng
这样行吗?不懂能除尽2、3、5的要返回2、3、5,再说返回的2、3、5不是等同于true吗?
2016-03-24 12:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.代碼是否正確,應該自己用測試去判斷,用各種各樣的數據去轟炸程序,衹要有一種情形不對,程序就不對。
2.程序並不是代碼短就是精簡,檢驗代碼質量的標準,有很多,包括正確性、可讀性、效率、可維護性、可擴展性……等,質量的各種指標的綜合評價。

很多學編程的新手,入了歧途,過於追求效率,把代碼寫的晦澀難懂,那是把個別指標的比重設置過大,屬於價值觀問題,不能說他錯,但我不是持這種價值觀的人,所以與他們基本無交流。

[此贴子已经被作者于2016-3-24 12:44编辑过]


授人以渔,不授人以鱼。
2016-03-24 12:25
快速回复:编完了个代码,大家给看看,还能不能精简
数据加载中...
 
   



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

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