| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:求助 !请问下列程序如果不用类定义能不能做?该怎么改?
只看楼主 加入收藏
aiwoleilei
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-6-22
结帖率:60%
收藏
已结贴  问题点数:5 回复次数:6 
求助 !请问下列程序如果不用类定义能不能做?该怎么改?
#include <iostream.h>
#include <string.h>

#define MIN 100000
#define MAX 166667

class Number{
private:
int num;
public:
Number();
void getnum();
void sortNums(int nums[]);
int checknum(int i,int temp);
void output(int i);
};

Number::Number(){
num=0;
}
/*
 *函数名:sortNums
 *功能:对nums数组进行冒泡法排序,返回结果
 */
void Number::sortNums(int *nums){
int temp,i,j;
for(i=0;i<6;i++){
for(j=i+1;j<6;j++){
if(nums[i]>nums[j]){
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}
}
/*
 *函数名:checknum
 *功能:检查乘2,3,4,5,6后得到的积是否由原数的6个数字组成的
 *      mxi=temp*(2,3,4,5,6)
 *返回值:-1 不相同 0 相同
 */
int Number::checknum(int temp,int mxi){
int find,bv,j;
int num1[6],num2[6];
find=0;


  j=0;
while(temp>0){
  bv=temp%10;
    num1[j]=bv;
temp=temp/10;
j=j+1;
}

  j=0;
while(mxi>0){
  bv=mxi%10;
    num2[j]=bv;
mxi=mxi/10;
j=j+1;
}

sortNums(num1);
sortNums(num2);
   
  /*
  按位比较数字是否相等
   */
for(j=0;j<6;j++){
if(num1[j]!=num2[j])
{
find=-1;
break;
}
}

return find;
}

void Number::output(int i){
cout<<"the number is "<<i<<endl;
}

void Number::getnum(){
int i,mxi;

cout<<"begin find number,start "<<MIN<<endl;
for(i=MIN;i<MAX;i++){

mxi=i*2;
if(checknum(i,mxi)<0) continue;
mxi=i*3;
if(checknum(i,mxi)<0) continue;
mxi=i*4;
if(checknum(i,mxi)<0) continue;
mxi=i*5;
if(checknum(i,mxi)<0) continue;
mxi=i*6;
if(checknum(i,mxi)<0) continue;

output(i);
}
cout<<"end find number,end "<<MAX<<endl;
}

int main()
{
int flag=0;
Number number;
number.getnum();
return 0;
}
搜索更多相关主题的帖子: 定义 
2010-06-26 18:46
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:1 
可以,去掉类域,用全局函数
2010-06-26 21:12
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
凡是面向对象的其实都可以用结构化来实现!

★★★★★为人民服务★★★★★
2010-06-26 21:17
tigerliliy
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-6-22
收藏
得分:1 
回复 2楼 最近不在
能说的详细一点吗?或者能给改一下吗?
2010-06-27 10:14
tigerliliy
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-6-22
收藏
得分:0 
回复 3楼 cnfarer
能帮忙给改一下吗?
2010-06-27 10:15
shn521
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:52
注 册:2010-6-18
收藏
得分:1 
#include <iostream.h>
#include <string.h>

#define MIN 100000
#define MAX 166667


    int num=0;


/*
*函数名:sortNums
*功能:对nums数组进行冒泡法排序,返回结果
*/
void sortNums(int *nums)
{
    int temp,i,j;
    for(i=0;i<6;i++)
    {
        for(j=i+1;j<6;j++)
        {
            if(nums[i]>nums[j])
            {
                temp=nums[i];
                nums[i]=nums[j];
                nums[j]=temp;
            }
        }
    }
}
/*
*函数名:checknum
*功能:检查乘2,3,4,5,6后得到的积是否由原数的6个数字组成的
*      mxi=temp*(2,3,4,5,6)
*返回值:-1 不相同 0 相同
*/
int checknum(int temp,int mxi)
{
int find,bv,j;
int num1[6],num2[6];
find=0;


  j=0;
while(temp>0)
{
    bv=temp%10;
    num1[j]=bv;
    temp=temp/10;
    j=j+1;
}

j=0;
while(mxi>0)
{
    bv=mxi%10;
    num2[j]=bv;
    mxi=mxi/10;
    j=j+1;
}

sortNums(num1);
sortNums(num2);
   
  /*
  按位比较数字是否相等
   */
for(j=0;j<6;j++)
{
    if(num1[j]!=num2[j])
    {
        find=-1;
        break;
    }
}

return find;
}

void output(int i)
{
    cout<<"the number is "<<i<<endl;
}

void getnum()
{
    int i,mxi;

    cout<<"begin find number,start "<<MIN<<endl;
    for(i=MIN;i<MAX;i++)
    {

    mxi=i*2;
    if(checknum(i,mxi)<0) continue;
    mxi=i*3;
    if(checknum(i,mxi)<0) continue;
    mxi=i*4;
    if(checknum(i,mxi)<0) continue;
    mxi=i*5;
    if(checknum(i,mxi)<0) continue;
    mxi=i*6;
    if(checknum(i,mxi)<0) continue;

    output(i);
}
cout<<"end find number,end "<<MAX<<endl;
}

int main()
{
int flag=0;
 
getnum();
return 0;
}
我改了下,不知道是否正确

[ 本帖最后由 shn521 于 2010-6-27 14:52 编辑 ]
2010-06-27 14:51
yanglee
Rank: 1
来 自:秦皇岛
等 级:新手上路
帖 子:5
专家分:1
注 册:2010-2-14
收藏
得分:1 
把类拆开就好了吧,我们学编程都是把以前的函数现在用类封装了。。呵呵,你这个反过来了
2010-06-27 15:01
快速回复:求助 !请问下列程序如果不用类定义能不能做?该怎么改?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021530 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved