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

41.调用随机函数产生20个整数,并输出。

给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参所指数组中(此数组在主函数中已置0) #include #include #define N 20 void fun(i...
  • u012814404
  • u012814404
  • 2015年06月06日 10:00
  • 320

随机产生10个2位正整数 然后排序

public static void main(String[] args) { // 随机产生10个2位正整数 然后排序 Random rd = new Rand...
  • lsxIT
  • lsxIT
  • 2015年07月31日 20:03
  • 312

java 数组练习题2

/* 3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数, 最后将这10个数输出。 4.先对数组{1,3,9,5,6,7,1,5,4,8} 进行排序,然后二分查找法找出数组...
  • qq_37643150
  • qq_37643150
  • 2017年04月17日 17:18
  • 676

如何用C语言产生10000个不重复的随机整数?并且把它写入到一个文本文件中作为其他函数测试用的数据。

http://zhidao.baidu.com/question/502597834.html
  • nanashiro
  • nanashiro
  • 2013年04月08日 04:53
  • 1954

从键盘输入十个整数存入一维数组中,求出它们的和及平均值并输出(要求用指针访问数组元素)?

#include int main() {     int *p = NULL,arr[10] = {0};     double ave = 0,sum = 0;     pri...
  • u011594602
  • u011594602
  • 2013年08月07日 07:09
  • 3000

C#第1次试验(3)设计一个程序,输入10个数存入数组中,求最大值、最小值和平均值.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Con...
  • lihongxuanli
  • lihongxuanli
  • 2012年11月19日 16:12
  • 8910

Linux-C基础知识学习:C语言作业-输入10个整数,找出其中最大值和最小值

Linux基础知识学习 C语言作业:输入10个整数,找出其中最大值和最小值//读10个整数存入数组,找出其中最大值和最小值 #include main(){ printf("输入10个整数,找出其...
  • u014455929
  • u014455929
  • 2016年09月12日 15:04
  • 573

小于m的最大的10个素数

7-2 小于m的最大的10个素数 (15 分) 给定一个整数m(50 输入格式: 输入在一行中给出一个正整数m(50 输出格式: 在一行中按递减顺序输出10个满足条件的素...
  • qq_40758751
  • qq_40758751
  • 2018年02月05日 21:44
  • 92

定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。

public class _1{               public static void main(String[] argv){    int[] array = new int[10];...
  • inaoen
  • inaoen
  • 2010年12月16日 21:03
  • 12349

编写一个C#程序,要求从键盘输入10个数存放在数组中,分别求出最大数和最小数存放在第一第二个元素里

程序一(在主函数中实现): using System; using System.Collections.Generic; using System.Linq; using System.Te...
  • H_lukong
  • H_lukong
  • 2015年10月10日 21:05
  • 3169
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【win32程序控制台】练习题:用随机函数产生10个互不相同的两位整数,存到一维数组中,并找出其中的素数
举报原因:
原因补充:

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