为什么无法输出10到99随机素数?

#include
#include
#include
using namespace std;
//void str_shushu();

int main()
{
str_shushu();
system("pause");
return 0;
}

void str_shushu()
{
int n=0;
for (int i = 0; i < 10; i++)
{

        int flag = 1;
        //srand((int)time(NULL));
        n = rand() % 89 + 10;
        for (int j = 1; j < n; j++)
        {
            if (n % j == 0)
                flag = 0;
                n = 0;
                break;
        }
        if (flag == 1)
            cout << n<< " " << endl; break;
}

}

# 程序逻辑上我已经看了好多次,编译器是通过的,但就是无法输出结果,求大神们帮我看一下?

6个回答

 //srand((int)time(NULL));
这个不要注销

if (n % j == 0)
{
                flag = 0;
                n = 0;
                break;
}
这里缺少花括号

//
支持楼主,如果算法没问题,那就是逻辑错误,这个编译器是检查不出来的。注意:**对于初学编程者,一定要注意编写程序的规范,能提升很高的效率**

if (flag == 1)
{ cout << n<< " " << endl; break; }

这里缺少花括号

问题一:这个if的花括号给漏了
if (n % j == 0) {
flag = 0;
n = 0;
break;
}

    问题二:
    for (int j = 1; j < n; j++) 改为for (int j = 2; j < n; j++)
    j的初始值应该是2,如果是1的话,任何大于0的整数%1都==0

if (n % j == 0)
flag = 0;
n = 0;
break;
没有大括号

#include
#include
#include
using namespace std;
void str_shushu();
int main()
{
str_shushu();
system("pause");
return 0;
}
void str_shushu()
{
int n = 0,i=0;
srand(time(0));
while(i<=10)
{
int flag = 1;
//srand(time(0));
n = rand() % 89 + 10;
for (int j = 2; j < n; j++)
{
if ((n % j) == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
cout << n << " " << endl;
i++;
}
}
}

在诸位的帮助下我已经解决问题了,但是如果一旦把srand()放在while循环里就会输出同样的十个素数,放在while外面则正常,这是为什么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
随机产生10个数1到99之间,然后输出10个数中最大的数和最的小数?
如题:使用Java语言,随机产生10个数1到99之间,然后输出这10个数并输出10个数中最大的数和最的小数?
为什么输出10???
[code=C/C++]rnint main()rnrn list roster1,roster2;rn fill_n(back_inserter(roster1),10,"s");rn fill_n(back_inserter(roster2),5,"2");rn fill_n(back_inserter(roster2),5,"s");rn size_t cnt=0;rn list::iterator it=roster1.begin();rn while((it=find_first_of(it,roster1.end(),roster2.begin(),roster2.end()))!=roster1.end())rn rn ++cnt;rn ++it;rn rn cout<<"found "<
素数的输出
简单小程序,输出100以内的素数 代码很短,一眼就看的出来
素数输出
#includern#includernrnint main()rnrn int n_i , n_num , n_num1 ;rn std::cin >> n_num >> n_num1 ;rn for( n_i = n_num1 ; n_i <= n_num ; n_i ++ )rn rn for( int n_j = 2 ; n_j < n_i ; n_j ++ )rn rn int n_k ;rn n_k = n_i % n_j ;rn if( n_k == 0 )rn continue ;rn rn std::cout << n_i << " " ;rn rn return 0 ;rnrnrnrnrn请问一下,为什么这个程序输出不了我想要的范围内的素数呢??能帮忙解释一下吗??谢谢!
输出素数
素数是指仅能被1和她自身整除的整数。(1 不是素数) 程序设计时 i 可以从2开始,到该整数的 1/2为止,用  i 一次去除需要判断的整数,只要存在可以整除该数的情况,即可以确定要判断的整数不是素数,否则是素数。 下面用输出1~100 的素数为例: #include int main() {     int i , n , m;     for(n = 2; n     {
为什么模运算无法输出?
本人刚开始自学C语言,很简单的一段代码,但被错误难倒了。。。求前辈解答,十分感谢[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]rn[code=c]#include rnrnint main(void)rnrn int num1, num2;rn int sum, sub, mul, div, mod;rnrn printf("Enter num1:");rn scanf("%d",&num1);rn printf("Enter num2:");rn scanf("%d",&num2);rnrn if(num2 == 0)rn sum = num1 + num2;rn sub = num1 - num2;rn mul = num1 * num2;rn printf("num1 + num2 =%d\n",sum);rn printf("num1 - num2 =%d\n",sub);rn printf("num1 * num2 =%d\n",mul);rn rn elsern sum = num1 + num2;rn sub = num1 - num2;rn mul = num1 * num2;rn div = num1 / num2;rn mod = num1 % num2;rn printf("num1+num2 = %d\n",sum);rn printf("num1-num2 = %d\n",sub);rn printf("num1*num2 = %d\n",mul);rn printf("num1/num2 = %d\n",div);rn printf("num1%num2 = %d\n",mod);rn rn return 0;rnrn[/code]rn显示时,其他几行正常,就模运算那行只显示一个:num1rn另外有两个warning:rn1、warning: format '%n' expects type 'int *', but argument 2 has type 'int'rn2、warning: too few arguments for formatrn该怎么样消除呢?
为什么无法输出“*”??
#include rnusing namespace std;rn#define MAX(a,b)(a>b?a:b)rnint series_char(char *zifu,char zf)rnrn int length=0,count=0;rn for(int i=0;zifu[i]!='\0';i++)rn rn if(zifu[i]==zf)rn count++;rn elsern rn if(count>length)rn rn length=count;rn count=0;rn rn rn rnreturn length;rnrnint main()rnrn char str[100];rn int a,b,x,max;rn cout<<"请输入字符串:";rn cin>>str;rn a=series_char(str,'a');rn b=series_char(str,'b');rn x=series_char(str,'*');rn max=MAX(a,b);rn max=MAX(max,x);rn if(max==a)rn cout<
为什么cout无法输出
程序如下:rn #include rn std::string global_str="hha";rn int global_int;rn int main()rn rn int local_int=2;rn std::string local_str;rn // ...rn std::cout<
随机生成大素数
RSA算法中随机生成大素数的代码,仅供学习用。
随机素数测试模板
LL arr[5]={ 2,3,5,233,331 }; LL Qmul( LL a , LL b , LL mod ) { LL res = 0; while ( b ) { if ( b&amp;amp;1 ) res = ( res+a )%mod; a = ( a+a )%mod; b = b&amp;gt;...
Java循环-输出 99 乘法表
@Test public void test8() { /* * 输出 99 乘法表 1*1 1*2 1*3 .... 2*2 2*3 2*4 .... 第一版: * 1.先计算出所有结果 * 2.解决换行问题 * 3.解决重复计算问题:1*1 1*2 2*1 * 看结果总结规律:1*2 2*1 2*3 3*2 3*4 4*3 4*5 5*4内层循环从上一...
java 集合 随机素数
/*  * 有一个集合arrays(集合中有7个元素,每个元素是20-600的  * 随机数且都是素数).集合元素获取后,降序打印输出  */ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; public class Se
输出99口诀
#include int main() {     int i,j,result;     printf("\n");     for (i=1;i     {         for(j=1;j         {             result=i*j;             printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占
输出99乘法口诀
for循环 #!/bin/bash for i in seq 1 9 do for j in seq 1 $i do sum=expr $i \* $j echo -n &quot;j&amp;amp;quot;Xj&amp;amp;quot;Xj&quot;Xi=$sum “” done echo done
10: 判决素数个数
分析   这是一道心机题。   ZheSh`IdaoXinjT.   This is a fxxking problem. 代码 1 #include 2 #include 3 #includestring> 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 bool check(int a
为什么不能正确输出3到100的素数
程序代码如下:rn Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Loadrn Dim i, j, k As Integerrn For i = 3 To 100rn For j = 3 ^ 1 / 2 To 10rn For k = 3 To jrn If i Mod k = 0 Thenrn Exit Forrn End Ifrn Nextrn If k > j Thenrn Response.Write(i & "")rn End Ifrn Nextrn Nextrn End SubrnEnd Classrn
随机取值,无法输出,不知错在哪里
public class enums nn public static String enumValue(String type) n String val = "";n String[] origins = "VISIT", "RECOMMEND", "LEAFLET", "ACTIVITY", "MEDIA", "MESSAGE", "NET", "PHONESALE", "FRIENDS", "OTHERS";n String[] educations = "DOCTOR", "POST_GRADUATE", "COLLEGE", "JUNIOR_COLLEGE", "HIGH_SCHOOL", "MIDDLE_SCHOOL", "SECONDARY_SCHOOL";n if (type.equalsIgnoreCase("origin")) n val = origins[(int) (Math.random() * origins.length)];n else if (type.equalsIgnoreCase("education")) n val = educations[(int) (Math.random() * educations.length)];nn n return val;n n public static void main(String[] args) n String sourceId = enumValue("educations");nn System.out.println("名单来源是"+sourceId);n nn
win 10 cpu使用率99%
求教 , 联系一体机 win10 cup 使用率 一直99% 超级卡。8g内存。rnrnrn[img=https://img-bbs.csdn.net/upload/201511/19/1447899186_4660.png][/img]rn[img=https://img-bbs.csdn.net/upload/201511/19/1447899258_999033.png][/img]rn[img=https://img-bbs.csdn.net/upload/201511/19/1447899267_568184.png][/img]
新人求解为什么无法输出?
删去数组中相同的数字,剩余依次向前串rn```rn #include rnint main()rnrn int i,j,a[10],n,k=0;rn scanf("%d\n",&n);/*输入n控制数组长度*/rn for(i=0;i
为什么无法输出一张图片
[code=php] session_start();rn rn //随机码的个数rn //$_rnd_code = 4;rn rn //创建随机码rn for($i=0;$i<4;$i++)rn $_nmsg.=dechex(mt_rand(0,15));rn rn rn //保存sessionrn $_SESSION['code']=$_nmsg;rn rn //长和高rn $_width = 75;rn $_height = 25;rn rn //创建一张图像rn $_img = imagecreatetruecolor($_width,$_height);rnrn rnrn //输出图像rn header('Content-Type:image/png');rn imagepng($_img);[/code]rn输出结果为[img=https://img-bbs.csdn.net/upload/201402/14/1392370333_640076.jpg][/img]
为什么无法输出?急急急急!!!
<%@ page import="java.sql.*"%>rn<%@ page language="java" import="java.util.*" %>rn<%@page contentType="text/html;charset=gb2312" %>rn<%rntryrn rnClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");rnConnection conn = DriverManager.getConnection ("jdbc:odbc:Tmovie");rnStatement stm=conn.createStatement();rnString strSQL=" SELECT * FROM TMovie";rnResultSet rs=stm.executeQuery(strSQL);rnrnout.println(rs);rn rn rnrncatch(Exception e)rnrn System.out.println("连接出错"+ e);rnrn rn%>rn运行没有报错,但是没有打印信息,也不知道是否与数据库连接上!rn请各位高手给我指点一下,如何知道是否连接上数据库,或者有更好的方法,谢谢!rnrn
输出乘法口诀表--输出素数--输出闰年
#define _CRT_SECURE_NO_WARNINGS #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include&amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt; int main() { int i=0;//定义行号变量 int j=0;//定义列号变量 for(i=1;i&amp;amp;amp;lt;=9;i++)//行从第一行到第九行 { f
伪随机大素数生成
from random import randint#使用randint需要加上这句 def growbin(w): #w是设定的二进制位数 list = [1] for i in range(w-2): list.append(randint(0,1)) list.append(1) s2 = [str(_) for _ in list] #['...
汇编程序实例素数输出
汇编程序实例素数输出,使用汇编语言编程,输出素数
求输出素数代码
这是本人写的 ,感觉不怎么好。求好的代码。rn[code=C/C++]rnint _tmain(int argc, _TCHAR* argv[])rnrn const int max=100;rn for(int i=2;i<=100;i++)rn rn for(int j=2;j
//输出100以内的素数
/** 质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。 */ public class T27 { public static void main(String[] args) { for(int i=1;i&amp;lt;=100;i++ ){//循环1到100的整数 for(int j=2;j&amp;lt;=i;j++){//从2开始比循环a小的数 if...
输出n以内的素数
素数:除了1和它本身之外,不能被其他数整除 关键可以使用sqrt(i)作为判断终止条件判断数i是否是素数。 #include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;lt;math.h&amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;lt;stdbool.h&amp;amp;amp;amp;gt; int main() { int i,j
输出100以内的素数
#include &quot;stdafx.h&quot;#include&amp;lt;iostream&amp;gt;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int b; for (b = 2; b &amp;lt; 100; b++){ bool prime = 1; for (int i = 2; i &amp;lt; b; i++) { if (b%i ...
输出1-100以内的素数
输出1-100以内的素数。
输出素数的问题?
写了一个输出素数的程序:代码如下rnpublic class BreakStructure rnrn public static void main(String[]args)rn rn int n=0,m,j,i;rn for(i=1;i<=50;i+=2)rn rn m=(int)Math.sqrt((double)i);rn for(j=2;j<=m;j++)rn if((i%j)==0) break;rn if(j>=m+1)rn rn if(n%6==0)rn System.out.println("\n ");rn System.out.print(i+"\t");rn n++;rn rn rn rnrn结果输出的是:1 3 5 7 11 13 rn rn17 19 23 29 31 37 rn rn41 43 47rnrn有1 肯定是错的阿,还有没得2,该怎么改?
素数的判断和输出
质数(Prime number)又称素数,有无限个。素数定义为在大于1的自然数中,除了1和它本身以外不再有其它因数的数称为素数。 需求:1、判断输入数字是否为素数。2、指定范围内的素数和素数的个数,并输出。 public class Prime { public static void main(String[] args) { isPrime(4);// 判断4是否为素数 isP
c关于素数的输出。。
看到这个题目时,学过c的估计都会轻松一笑,觉得很简单,不就素数的输出嘛,有什么可说的,但就这么个简单的问题,可以有多种处理办法,瞬时让自己的逼格升级很多。对于初学c的朋友们可以借鉴下哦!希望能够共同能够进步。    一、首先,我们还是先来回顾下素数的概念:                   素数:是指除了能被1和它本身整除,不能被其它任何整数整除的数。  二、知道了什么是素数,那么接下来就
输出1-100之间的素数
写一个控制台应用程序,输出1-100之间的所有素数
输出素数的二进制
/*************************************************************************************功能:输出素数的二进制 说明:递归求出二进制 作者:nicehuai 日期:2015/2/1*********************************************************************
质数分解
import java.util.Scanner; public class p5 {  public static void main(String[] args) {   // TODO Auto-generated method stub   Scanner in=new Scanner(System.in);   while(in.hasNext()){    int n=in
输出素数的优化算法
#include #include int main() {        int num=0;         int count=0;         for(num=101;num        {          int n=0;          for(n=2;n             {              
输出素数C++
设计一个程序,输入一个整数num(如num=120),降序输出小于num的所有素数,使用StackOfIntegers来保存素数(如2,3,5….),并利用它逆序获取和输出素数。
输出1000中素数
输出1到1000素数c++程序
输出前50个素数
public class PrimeNumberMethod { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println(&quot;The first 50 prime number are \n&quot;); printPrimeNumbers(50); } public sta...
输出素数的代码优化
对于输出素数代码的优化
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符