如何用c++產生1-10十個不同的隨機數(程式碼很經典)
你要不同的10個數。
你可以設個數組儲存已經產生的數
。比如已經產生了第一個數5,
你用rand()生成了又一個5時,比較一下以產生的數發現是5,就跳過,看下一個。總能產生10個不同的隨機數。
演算法就是,每生成一個數就與原來生成的數比較,如果有相等的就就重新生成一個數,
這樣就能保證10個數都不相等了。下面這個程式生成數的範圍是0到100:
#include <iostream>
#include <stdlib.h> //rand(),srand()函式在這個標頭檔案中#include <time.h> //time(0)在這個標頭檔案中
#define MAX 100
using namespace std;
void main()
{
int arr[10];
int i=0;
bool ret=false;
srand((unsigned)time(NULL));
while(1)
{
arr[i]=rand()%MAX+1;
for(int j=0;j<i;j++)
{
if(arr[j]==arr[i])
ret=true;
}
if(!ret)
{
i++;
ret=false;
}
if(i==10)
{
break;
}
}
while(--i)
{ cout<<arr[i]<<" "; }
cout<<arr[0]<<endl;
}
注:產生10個100以內的數字
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
相關推薦
如何用c++產生1-10十個不同的隨機數(程式碼很經典)
你要不同的10個數。 你可以設個數組儲存已經產生的數 。比如已經產生了第一個數5, 你用rand()生成了又一個5時,比較一下以產生的數發現是5,就跳過,看下一個。總能產生10個不同的隨機數。 演算法就是,每生成一個數就與原來生成的數比較,如果有相等的就就重新生成一個數,
用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。
問題 用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。 要求:中斷觸發方式為下降沿觸發,按鍵有消抖功能 模擬 程式碼 #include <
C程序中讓兩個不同版本的庫共存
lua compile c 原文連接:http://blog.gotocoding.com/archives/875今天有同學提出,如何在一個C程序中讓兩個不同版本的庫共存。首先想到的方案是,把其中一個版本的庫函數全部重命名,比如把每一個函數名都加一個_v2的後綴。人工替換到沒什麽,但是如果函數個
記錄我用C語言解的第一個方程~
就是很簡單的ax^2+bx+c=0 #include<stdio.h> #include<math.h> void fun(float a, float b, float c) { float x1,x2,d; d=b*b-4*a*
用C++編寫小學生隨機十道練習題的步驟以及原始碼
程式要求: 設計一個程式,用來實現幫助小學生進行算術運算練習,它具有以下功能: (1) 提供10道加、減、乘、除四種基本算術運算的題目,每道題中的運算元是隨機產生的; (2) 加減是100以內的數;乘除為乘法表裡的;被減數大於減數;除法要求能整除;被乘數小與乘數;(若不合格
知道隨機產生1-7的函式,如何得到隨機產生1-10的函式
題目:http://chaotang0281.iteye.com/blog/1179205 已知有個rand7()的函式,它可以返回1到7之間的隨機自然數,現在請讓利用這個rand7()來構造rand10()使它能 隨機地產生1~10之間的自然數。 想的結果:
用c++實現輸入任意兩個日期 計算相隔天數
#include <stdio.h> //判斷是瑞年的演算法 bool isleapyear(int y){return ((y % 4 == 0 && y % 100 != 0 )|| y % 400 == 0); } int sum(int
極差問題:c++求解1-10的極差問題的初等解法
1.問題的描述 在黑板上一共有1-10 共10 個數,,進行如下操作:每次擦去其中的兩個數a和b,然後在數列中加入一個數a*b+1,如此下去直至黑板上只有一個數,在所按的操作方式得到的數當中,最大的為max,最小的為min,則該數列的極差定義為M=max-mi
用C語言實現判斷兩個陣列中是否有相同的元素,有就輸出“有”,沒有則輸出“沒有”
建立兩個陣列,讓第一個陣列中的元素依次與第二個陣列中的元素比較(想讓第一個陣列中的第一個元素與第二個陣列中每個元素比較),若找到相同的,則計數並且計數停止,若計數不為零,則有相同元素,否則沒有。test.c#include<stdio.h> int main()
c語言:給十個整數比較大小
程式:#include<stdio.h>int main(){int arr[10]={1,22,30,4,51,6,7,81,9,10};int max=0;int i=0;for(i=1
用JSP求1~10的階乘
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HT
C#設計模式之十二代理模式(Proxy Pattern)【結構型】
ride col 安全 .html 使用權 防火墻 一對多 tro 橋接 原文:C#設計模式之十二代理模式(Proxy Pattern)【結構型】一、引言 今天我們要講【結構型】設計模式的第七個模式,也是“結構型”設計模式中的最後一個模式,該模式是【代理模式】,英文名稱
C#設計模式之十九策略模式(Stragety Pattern)【行為型】
多條件 第一次 必須 this 數據傳遞 名稱 面向 div 想要 原文:C#設計模式之十九策略模式(Stragety Pattern)【行為型】一、引言 今天我們開始講“行為型”設計模式的第七個模式,該模式是【策略模式】,英文名稱是:Stragety Pattern。
<C++學習十四>陣列(未完待續)
摘要: 本篇部落格僅作為筆記,如有侵權,請聯絡,立即刪除(網上找部落格學習,然後手記筆記,因紙質筆記不便儲存,所以儲存到網路筆記) 一維陣列: (1)靜態 int array[100]; //定義了陣列array,並未對陣列進行初始化 int array[100] = {1,2}; //定義並
第十四周專案1線性表的折半查詢(遞迴法)
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年12月2日 * 版本號:VC6.0 * 問題描述:線性表的折半查詢(遞迴法) * 輸入描述:無 * 程式輸出:圖
【C語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變
請編碼實現以下功能的函式 功能:實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data,unsigned char position,int flag)
Windows 10 專業版啟用方法(親測有效)暫時只可以用180天(後續更新可以更久的啟用方式)
右鍵單擊開始按鈕: 管理員方式執行Powershell,然後依次輸入下面三條命令,回車,會看到三條提示語句。 分別為, slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX 紅色字型為啟用金鑰 獲取金鑰成功。 slmgr /skms kms.03k
用Android studio多渠道打包以及使用不同資源(包括icon或者其他圖片等)
自己專案需要分渠道打包,且使用不同資源,所以,在百度之後,總結了一下: 利用友盟分渠道打包,首先在manifest裡面加一句: <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNE
【c語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變
// 實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變 #include <stdio.h> void bit_set(unsigned char *p_data, unsigned char
醬油帶你用cocos2dx3.0完成一款戰棋遊戲 (曹操傳)(一)地圖製作篇 1
這是醬油第一次寫部落格,所以如果有什麼寫的不好,大家多多海涵啊。那麼廢話就不多說了,直接進入正題吧。 製作一款戰棋遊戲,在醬油看來最大的難度便是 ai的設計以及 實現劇本對遊戲整體的控制,當然啦,這都是比較深的問題了,醬油會放到以後的章節來加以介紹。那麼現在就正式開始打醬油