用c程式設計求從數中任意選數的所有情況

時間 2021-12-23 01:10:59

1樓:忽忽上升

從1,2,3,4,5中任選三個數的排列:

#include

using namespace std;

int main()

{for(int i=1;i<6;i++)for(int j=1;j<6;j++)

for(int k=1;k<6;k++)

{if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/

cout<

從鍵盤輸入五個數,從中選出任意三個數:

#include

#include

using namespace std;

int main()

{srand(time(0));

int a[5];

for(int m=0;m<5;m++)

cin>>a[m];

while(1)

{int i=rand()%4;

int j=rand()%4;

int k=rand()%4;

if(i!=k&&i!=j&&j!=k)

{cout<

2樓:匿名使用者

#include

int f(int n,int r)   //求n取r的組合數else

return f(n-1,r)+f(n-1,r-1);

}int g(int n)   //求n的階乘else

return n*g(n-1);

}void main()

cout<<"從"<

3樓:特維佐

#include

#include

using namespace std;

//主函式

int main(int argc,char * ar**)

int a[5]=;

printf("從以下五個數中任選三個數:\n%d %d %d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);

printf("所有組合情況為:\n");

printf("第%d種:%d %d %d\n",1,a[0],a[1],a[2]);

printf("第%d種:%d %d %d\n",2,a[0],a[1],a[3]);

printf("第%d種:%d %d %d\n",3,a[0],a[1],a[4]);

printf("第%d種:%d %d %d\n",4,a[0],a[2],a[3]);

printf("第%d種:%d %d %d\n",5,a[0],a[2],a[4]);

printf("第%d種:%d %d %d\n",6,a[0],a[3],a[4]);

printf("第%d種:%d %d %d\n",7,a[1],a[2],a[3]);

printf("第%d種:%d %d %d\n",8,a[1],a[2],a[4]);

printf("第%d種:%d %d %d\n",9,a[1],a[3],a[4]);

printf("第%d種:%d %d %d\n",10,a[2],a[3],a[4]);

system("pause");

return 0;

c++程式設計 從n個數中選出m個數進行組合

4樓:馮老師(必果學院

程式設計思路:

從n個數中選出m個數進行組合(n>m)可以採用遞迴的方式解決

先從n個數中選一個數出來,然後在剩下的n-1個數當中選取m-1個數進行組合

對於n-1個數,同樣有

先從n-1個數中選一個數出來,然後在剩下的n-2個數當中選取m-2個數進行組合

對於n-n個數,同樣有

先從n-n個數中選一個數出來,然後在剩下的n-n個數當中選取m-n個數進行組合

如此遞迴

直到m-n==1為止

當m-n為1的時候,自然不用選了

每次選取的結果放入一個陣列當中,作為引數傳遞下去

當遞迴到m-n為1的時候,陣列和當前選定的值即構成一個有效組合,便可輸出

這類問題都可以嘗試遞迴的解決思路,將一個複雜的大問題,一級一級轉化為較小的,可以解決的問題

示例**如下:

void select(

int* data/*待篩選的數 裡面不能有重複的數*/,

int n,

int m,

int list/*假設list長度足夠,為m,初始list中的元素值為-1*/,

int listlen)

{int i,j;

if(m==1){

for(i=0;i

5樓:匿名使用者

n = 5

m = 3

a陣列 result向量

{}//輸出,回溯

//輸出,回溯

//輸出,回溯

//輸出,回溯

//輸出,回溯

。。。。。。 //這是排列,不是組合自己單步執行除錯吧,這樣更容易理解

c++程式設計題,編寫程式,從任意n個數中找出最大數和最小數,並將它們相互交換後輸出 10

6樓:

#include

using namespace std;

int main()

int max=p[0],min=p[0],max_index=0,min_index=0;//max最大值,min最小值,max_index最大值處的下標,min_index最小值處的下標

for(int i=0;imax)

}swap(p[max_index],p[min_index]);  //最大值 最小值 相互交換位置

cout << "the maximum number is " << max << endl;

cout << "the minimun number is " << min << endl;

return 0;}

用c++編寫程式,輸入三個數abc, 使三個數按從小到大輸出

7樓:匿名使用者

#include

using namespace std;

int main()

//到此,保證a<=b

if ( c < a ) //小於小的,為最小cout << c << " " << a << " " << b 

cout << a << " " << b << "  " << c <

怎麼用c語言程式設計序從0 80中隨機抽取數

鈊 煩 薏亂 你用rand函式返回值 81,得到的結果必然在0 80之間。include main 首先,加一個 include 然後設一個變數,如j,j rand 就可以給j賦一個1 32767的隨機數,如果要獲得一個隨機函式的十位 其它類似 只需令j j 10就行.新增標頭檔案 include ...

從1,2,3,4,5,6,7,8,9中任意選出數,使它們的和為偶數,共有種不同的選法

繁亭晚操戌 抄來的不知道對不對 從1,2,3,4,5,6,7,8,9中任意選出三個數,使它們的和為偶數,則共有 種不同的選法。a 40 b 41 c 44 d 46 共有奇數五個,偶數四個 要得和是偶數,則有 偶數 偶數 偶數或者 偶數 奇數 奇數從四個偶數中任取三個有 4 3 2 3 2 1 4種...

從12345中任意取不同的數,事件A取到的數只和為偶數,B取到的兩個數均為偶數,則P B

賓秀榮靳甲 是p b a 吧,就是a發生的前提下,b發生的概率。這題就很簡單了,直接講道理,不說公式,首先,a的前提下,就是a已經發生了,a的情況為2數和為偶數,那麼只有可能是1 3 5中的2個或者是2和4,而1 3 5中的2個總共有1 3和1 5和3 5三種情況,加上2 4,總共4種情況,那麼就是...