| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 823 人关注过本帖
标题:提个问各位大虾请帮忙解答下
只看楼主 加入收藏
易碎务碰
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-14
收藏
 问题点数:0 回复次数:2 
提个问各位大虾请帮忙解答下
题目要求是让程序显示1到10之间质数的个数 可我做好后编译显示结果总是不对请帮我看下错在哪
代码如下
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication21
{
    class Program
    {
        static void Main(string[] args)
        {
            int i, j, k, a;
            //i=个数 j=循环量 k计数器 a结果


            k = 0;
            for (i = 1; i <= 10; i++)
            {

                for (j = 2; j <= i - 1; j++)
                {
                    if ((i % j )== 0)
                    {
                        k=k+1;
                        break;
                    }
                    Console.WriteLine("num the SUM {0}", i);
                    a = i - k - 2;
                    Console.WriteLine("num is zhishu {0}", a);
                    Console.ReadLine();


编译后显示
i=3
a=1
狂汗不知道错哪了
搜索更多相关主题的帖子: 计数器 using System 解答 
2008-04-20 19:16
足迹
Rank: 1
来 自:广东惠州
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-4-2
收藏
得分:0 
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //i是代表质数,sum是代表质数的和
            int sum = 0;
            for (int i=1; i<=10; i++)
            {
                //flag是用来判断的,如果i%j的数有为零的说明不是质数,记号为true
                bool flag = false;
                for (int j = 2; j <= Math.Sqrt(i) + 1; j++)
                {
                    if (i % j == 0)
                    {
                        flag = true;
                    }

                }
                if (i == 2 || flag == false)
                {
                   sum++;
                    Console.WriteLine(i);
                  
                }
               
            }
            Console.WriteLine("1到10的质数个数为:"+sum);
            Console.ReadLine();
        }
    }
}
如果还有什么不懂的可以回复
2008-04-20 22:34
足迹
Rank: 1
来 自:广东惠州
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-4-2
收藏
得分:0 
for (int j = 2; j <= Math.Sqrt(i) + 1; j++)
这句是为了算法的执行速度会快些,for (int j = 2; j <i; j++)代替。
说一下你的错误 for (j = 2; j <= i - 1; j++)
你的i是从1起的  j <= i - 1表示j<=0才执行下面的
显然是不可能的  所以不会执行for里面代码
2008-04-20 22:40
快速回复:提个问各位大虾请帮忙解答下
数据加载中...
 
   



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

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