c++三个数字排序 删除重复数字

来源:百度知道 编辑:UC知道 时间:2024/05/31 08:40:49
设计一个C++程序,要求任意输入三个阿拉伯数字,计算由这三个数字组成的所有可能的三位数(不重复)的个数,并输出所有组合。
请注意:不重复!!!
各位大哥们说得都很好,这办法我早就想到了,关键是不能用变量给数组赋值,只能用常量给数组赋值,各位都忘记了吧?! 如果要把已产生的数保存下来,必须要用变量给数组元素赋值,就是这个问题解决不了。而且定义数组是要先确定其个数,究竟该定义多少,各位把这个问题也忽略了吧

你说的问题其实很简单,你定义一个27个长度的数组就解决了,因为这是极限
的情况了.另外定义动态的数组可以用new来定义,需要的话可以联系我。

//程序运行过了,符合要求,有问题hi我
#include<iostream>
using namespace std;
void main(){
//定义所需变量并初始化
int num[3],temp;
int total[999];
int index=0;
bool flag=true;
int t,i,j,l;
for(i=0;i<27;i++)
{
total[i]=0;
}

//输入数字并判断是否合理
for(j=0;j<3;j++)
{
cout<<"请输入第"<<j+1<<"个数字(0-9)"<<endl;
cin>>num[j];
do {
if (num[j]>9)
{
cout<<"输入有误,请重新输入"<<endl;
cin>>num[j];
}
}while(num[j]>9);
}

//统计结果并去掉重复的数字
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{

for(l=0;l<3;l++)
{
temp=num[l]*100+num[j]*10+num[i];
flag=true;

for(t=0;t<index+1;t++)
{
if(tem