【win32程序控制台】练习题:用随机函数产生10个互不相同的两位整数,存到一维数组中,并找出其中的素数

原创 2012年03月30日 13:35:26

/ * 程序的版权和版本声明部分 
  * Copyright (c) 2012, 华南师范大学软件工程专业  
  * All rights reserved. 
  * 文件名称:用随机函数产生10个互不相同的两位整数,存到一维数组中,并找出其中的素数                            
  * 作    者:Hookc                              
  * 完成日期:2012  年3  月 30 日 
  * 版 本 号:1          
  * 对任务及求解方法的描述部分 
  * 输入描述:
  * 问题描述:  
  * 程序输出:产生两位数的随机数,输出这10个随机数里面的素数 
  * /

#include<iostream>
#include<cstdlib>                  //srand()和rand()函数头文件
#include<time.h>                   //系统time()函数头文件
#include<cmath>
using namespace std;

int random[10];

void Save_Random()
{
	srand((unsigned) time(NULL));          //设置种子值
	for(int i=0;i<10;i++)
	{
		int n;
		random[i]=10+rand()%90;        //获取随机数10~100
		for(n=0;n<i;n++)               //用这个循环来判断有无重复的数
	    if(random[i]==random[n])
		{ 
			i--; break; 
		}                              //如果有重复的数,i--,退回去,重新生成一个数,并重新判断有无重复的数
	}
}

void Judge_PrimeNum()
{
	int j;
	for(int i=0;i<10;i++)
	{
		for(j=2;j<=(int)sqrt((double(random[i])));j++)    //加上(double),避免sqrt运算重载
			if(random[i]%j==0)
				break;
		if(j>(int)sqrt((double)random[i])&&random[i]!=1)
			cout<<random[i]<<endl;
		 
		//写法二:
		/*j=2;
		while(j<=(int)sqrt((double)random[i]) && random[i]%j!=0) 
		{ 
			j++; 
		} 

		if(j>(int)sqrt((double)random[i])) //加上(double)
		{
			cout<<random[i]<<" "; 
		}*/
	}
	cout<<endl;  
}

int main()
{
	int i;
	Save_Random();
	cout<<"所产生的10个互不相同的二位随机整数为: "<<endl; 
	for(i=0;i<10;i++) 
	{ 
		cout<<random[i]<<" "; 
	} 
    cout<<endl; 
	cout<<"其中的素数为: "<<endl; 
	Judge_PrimeNum();
	system("pause");
	return 0;
}

    在这个程序中,第一次接触到了产生随机数的函数,了解了利用系统时间制造随机数的原理以及函数重载中sprt不存在sqrt(int)类型等问题,结合之前学到的从数组里面找出素数的方法,更深刻地理解了这个程序。

  VC 2008后为重载函数,原型为 float sqrt (float),double sqrt (double),double long sqrt(double long) 

  注意没有int sqrt (int)【引用自:百度百科 条词:平方根计算】

C# 中产生10个不重复的随机数

namespace kaoshiti7._1_4 {     class Program     {         //写一个函数  返回一个长度为10,范围在 100-999 之间的,元素都不相同...
  • Czhenya
  • Czhenya
  • 2017年07月25日 18:09
  • 411

unity中利用C#产生随机不相同的一组数

using UnityEngine; using System.Collections; using System.Collections.Generic; public class game : M...
  • x100568
  • x100568
  • 2016年04月22日 09:55
  • 1266

【win32程序控制台】练习题:抽象基类与虚函数、纯虚函数的综合使用

/ * 程序的版权和版本声明部分 * Copyright (c) 2012, 华南师范大学软件工程专业 * All rights reserved. * 文件名称:抽象基类与虚函数...
  • Hookc
  • Hookc
  • 2012年04月22日 22:19
  • 815

【win32程序控制台】练习题:堆栈数据增删过程的演示(来自c++primer plus p328~330)

/ * 程序的版权和版本声明部分 * Copyright (c) 2012, 华南师范大学软件工程专业 * All rights reserved. * 文件名称:堆栈数据增删过程...
  • Hookc
  • Hookc
  • 2012年04月10日 13:12
  • 780

Win32控制台应用程序隐藏弹出的那个DOS窗口

调用FreeConsole(); 需要头文件windows.h,在程序开始时调用就行了。但是VC开发环境的控制台还是会有的,因为那是VC调的,不过你的程序不会输出到那个控制台罢了 projec...

VC++2005运行Win32控制台程序时,为什么弹不出控制台窗口(无法看到运行结果)?

VC++中如果是按F5运行的话,表示以调试方式运行,如果遇到断点可以停下来,也可以单步调试、监视变量等。程序结束时立即退出。如果是按Ctrl+F5运行的话,表示以独立的方式运行,即使遇到断点也不会停下...

Vs2008 win32控制台程序不弹出控制台窗口的方法

不想看到,控制台程序那个控制台窗口可以以这样设置:     project->settings->link,category选output,在project options里把/subsystem:...
  • zt_706
  • zt_706
  • 2012年07月31日 14:30
  • 999
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【win32程序控制台】练习题:用随机函数产生10个互不相同的两位整数,存到一维数组中,并找出其中的素数
举报原因:
原因补充:

(最多只允许输入30个字)