【发布时间】:2013-02-23 19:30:20
【问题描述】:
我正在尝试生成一个集合的幂集,并且我编写了这段代码。问题是,当用户输入两个相似的集合成员时,它不能正常工作。我能做些什么? 这是我的代码:
#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# 标签。
-
为什么在使用
cout时使用 C 语言标签,而该标签未在 C 或 C# 中定义? -
当你使用调试器时,错误出现在哪一行?
-
另外,从不混合
printf和std::cout。使用其中一种。 -
请在您的问题中添加输入、预期输出和实际输出。