有沒有大佬教教新手怎么用C++撰寫這個程式
(注:要列出所有組合)
uj5u.com熱心網友回復:
樓主,每種球的個數都未知嗎?uj5u.com熱心網友回復:
#include "stdafx.h"
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
enum color{red,yellow,blue,white,black};//宣告列舉型別color
color pri; //定義color型別的變數pri
int i,j,k,n=0,loop;//n是累計不同顏色的組合數
for(i=red;i<=black;i++)//當i為某一顏色時
{
for(j=red;j<=black;j++)//當j為某一顏色時
{
if(i!=j)//若前兩個球的顏色不同
{
for(k=red;k<=black;k++)//只有前兩個球的顏色不同,才需要檢查第3個球的顏色
{
if(k!=i&&k!=j)//三個球的顏色都不同
{
n=n+1;//使累計值n加1
cout<<setw(3)<<n;//輸出當前的n值,字符寬度為3
for(loop=1;loop<=3;loop++)//先后對三個球做處理
{
switch(loop)//loop的值先后為1,2,3
{
case 1:pri=color(i);break;//color(i)是強制型別轉換,使pri的值為i
case 2:pri=color(j);break;// j
case 3:pri=color(k);break;// k
default :break;
}
switch(pri) //判斷pri的值,輸出相應的顏色
{
case red:cout<<setw(8)<<"red";break;
case yellow:cout<<setw(8)<<"yellow";break;
case blue:cout<<setw(8)<<"blue";break;
case white:cout<<setw(8)<<"white";break;
case black:cout<<setw(8)<<"black";break;
default :break;
}
}
cout<<endl;
}
}
}
}
}
cout<<"total:"<<n<<endl; //輸出符合條件的組合的個數
return 0;
}
uj5u.com熱心網友回復:
題目不對!比如紅球如果只有小于3個和大于等于三個,答案肯定不一樣的,所以這種問題必須說清楚uj5u.com熱心網友回復:
是的,就是要窮舉那種
uj5u.com熱心網友回復:
哈哈哈有道理 只能暫且忽略這個情況啦 老師出的題目
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132818.html
標籤:新手樂園
下一篇:c++代碼
