我試圖生成一個集合的powerset,我寫了這段代碼。問題是,當用戶輸入兩個相似的成員時,它不能正常工作。我能做什麼? 這裏是我的代碼:編寫powerset代碼的問題
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
char obtain(char *p,int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"enter member"<<(i+1)<<"\n";
cin>>*(p+i);
}
return *p;
}
void set_display(char *p,int n)
{
cout<<"{";
for(int i=0;i<n;i++)
{
cout<<*(p+i)<<",";
}
cout<<"}";
}
void powset(char *p,int n)
{
unsigned int m = (double)pow((double)2, n);
int i, j;
for(i = 0; i < m; i++)
{
cout<<"{";
for(j = 0; j < n; j++)
{
if(i& (1<<j))
cout<<*(p+j);
}
cout<<"}\n";
}
}
我不確定這與C#有什麼關係,所以我刪除了C#標記。 – Freeman 2013-02-22 16:23:47
爲什麼C語言標記在使用'cout'時未在C或C#中定義? – 2013-02-22 16:24:08
當你使用調試器時,哪行是錯誤? – 2013-02-22 16:24:57