誰能幫我這題 程式設計 C++為優或是J其他都可

2007-08-16 11:01 pm
第一題

1.產生並輸出4位數字
要求1 數字不可重複
2千位數字不得為0

第二題

延續
1.產生並輸出4位數字
2.輸入四位數字
3.輸出比對結果?A?B
4.選擇性 重複至猜出結果為止

謝謝麻煩動動腦 幫我解解題

回答 (3)

2007-08-19 6:27 pm
✔ 最佳答案
奉送人與電腦對玩幾A幾B的程式。
第一題的答案在 main 裡最前面那 4 個 for。
第二題:
1. 在第一題。
2. 在 main裡第5個for 裡的 do while 裡。(a)
3. 在 _A_B 函數與 (a)下的那個 cout 裡。
4. 整個程式是它加上電腦猜人。
 去掉電腦猜人,就是你要的了。

字數超過知識+ 的限制,另外 post 在這裡

2007-08-17 5:16 am
void main()
{
 char s[5]={0};
 int i=1;

 srand((unsigned)time(0));
 while((s[0]=rand()%10+48)=='0');
 while(i!=4)
 {
  s[i++] = rand()%10+48;
  for(int j=0;j<i-1;j++)
   if(s[i-1]==s[j])
   {
    i--;
    break;
   }
 }
 printf("%s\n",s);
 getch();
}
2007-08-17 4:16 am
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
int output(int Bit)
{
srand((unsigned)time(NULL));
char *num=new char[Bit+1];
num[Bit]='\0';
for(int i=0;i<Bit;i++)
{
do{
num[i]=rand()%10+48;
}
while(num[0]==48);
if(i>0)
{
bool flag;
do
{
flag=true;
for(int j=0;j<i;j++)
{
if(num[j]==num[i])
{
flag=false;
num[i]=rand()%10+48;
break;
}
}
}
while(flag!=true);
}
}
int n=atoi(num);
delete [] num;
return n;
}
int main(int argc, char** argv){
//=====START=====//
cout<<"1st...\noutput= "<<output(4)<<endl;
//=====END=====//
system("PAUSE");
return 0;
}
參考: 吸加加;第一題


收錄日期: 2021-04-27 17:15:32
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070816000015KK06919

檢視 Wayback Machine 備份