【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)【引用自:百度百科 条词:平方根计算】

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

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

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

不想看到,控制台程序那个控制台窗口可以以这样设置:     project->settings->link,category选output,在project options里把/subsystem:...

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

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

一个服务程序框架,并在vc6.0win32控制台工程中嵌入manifest使用uac

开发环境:vc6.0 + win7三个主要的函数有main(),为程序入口函数;ServiceMain(),服务函数入口,调用真正的服务程序,相当于服务的主线程函数;ControlHandler,接受...

给Win32 GUI程序增加控制台窗口的方法

在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用MessageBox弹出对话框、OutputDebugString向VS的调试窗口输出信息等,但总感觉不如控...

VC++ 基于Win32控制台应用程序的ADO连接SQL server数据库

ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB、COM不了解也能轻松对付ADO。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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