| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1536 人关注过本帖
标题:(要求指针-未解决)求出所有这样的三位整数,它的2倍3倍仍然是三位整数
只看楼主 加入收藏
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
回复 3楼 voidx
你好像没读懂我的程序。我的程序绝对没有错。呵呵,你不要误导别人。对比一下你程序和我的程序的运行结果。就知道我的是对的。
2011-04-24 11:16
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 8楼 hjywyj
啊,是我看错了,不好意思
2011-04-24 13:19
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 2楼 kwxx
我看不太懂,什么意思?能详解一下吗?
2011-04-24 14:29
linlongboy
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-4-24
收藏
得分:0 
#include<stdio.h>
#define N 1000
void main()
{
    int n,i,j,k,n2,n3,t=0;
    for(n=100;n<=329;n++)
    {
        i=n%10;
        j=n/10%10;
        k=n/100%10;        /*求出个、十、百位的数*/
        n2=2*n;
        n3=3*n;
        if(n2<N&&n3<N)
            if(i!=j&&j!=k&&i!=k)
            {
                printf("%d ",n);       /*把两倍三倍,且个、十、百位都不同的数输出*/
                t++;
            if(t%5==0)
                printf("\n");    /*每五个数换一行*/
            }
    }
}
2011-04-24 15:47
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
回复 13楼 hjywyj
程序代码:
/*---------------------------------
输入一个英文句子,如何才能把这个句子中的每个单子的首字母都变成大写的呢?
(如we are student使它成为 We Are Student)
-----------------------------------*/
#include<stdio.h>
void main()
{
    int m,n,k,i,sum,s[10]={0};    //数组s是标志数组,初始值都是0,如果i在m,2*m,3*m的某个数位中,则使得a[i]=1 (i:从1取到9).

    for(m=123;m<329;m++)    //因为各数位数字不同,而且3m<999
    {
        n=2*m; k=3*m;              
        s[m/100]=s[m%100/10]=s[m%10]=1;    //其中m/100、m%100/10、m%10分别是m三个数位上的数字,如,m/100=5,则左边赋值语句使得a[5]=1,下边类似
        s[n/100]=s[n%100/10]=s[n%10]=1;
        s[k/100]=s[k%100/10]=s[k%10]=1;
        sum=0;
        for(i=1;i<10;i++)sum+=s[i];            //累加a[1]到a[9],如果sum==9,说明从1到9都取到了,满足要求,输出结果。
        if(sum==9)printf("%5d%5d%5d\n",m,n,k);
        for(i=1;i<10;i++)s[i]=0;            //将标志数组s重新置为0,准备下一个m的验证
    }
}
/*-----------
运行结果:
  192  384  576
  219  438  657
  273  546  819
  327  654  981
-----------*/ 
2011-04-24 16:16
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 15楼 kwxx
明白了,谢了!
2011-04-24 16:30
寒冷雨季
Rank: 2
等 级:论坛游民
帖 子:15
专家分:21
注 册:2011-4-20
收藏
得分:0 
十四楼的有问题吧?如果是124这个数,不是也数出来了吗?人家要本身和两倍以及三倍的九个数无重复的~
2011-04-24 18:08
austral
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2011-3-30
收藏
得分:0 
回复 15楼 kwxx
你好。你的代码是正确的。但是我要的是指针的方法。我的提问是如何优化指针。因为本帖的0楼的C代码看不懂。
2011-04-24 19:54
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 18楼 austral
如果用指针,指针用来代替一下数组就可以了。
int a[10]={0},i,m,n,s,*p[10];
for(i=0;i<10;i++)
p[i]=&a[i];
for(i=100;i<333;i++)
{s=0;m=2*i;n=3*i;
*p[i/100]=*p[i/10%10]=*p[i%10]=1;
*p[m/100]=*p[m/10%10]=*p[m%10]=1;
*p[n/100]=*p[n/10%10]=*p[n%10]=1;
for(int j=1;j<10;j++)
s=s+*p[j];
if(s==9)
printf("%5d%5d%5d\n",i,m,n);
for(int j=0;j<10;j++)
*p[j]=0;
}
2011-04-24 20:27
dengjinbao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:64
专家分:119
注 册:2011-3-22
收藏
得分:0 
程序代码:
#include <stdio.h>
bool fun(int n)
{
    int a,b,c;
    a=n%10;
    b=(n/10)%10;
    c=n/100;
    if(a!=0&&b!=0&&c!=0&&a!=b&&a!=c&&b!=c)
        return true;
    else
        return false;
}
bool fun1(int n,int m)
{
    int a,b,c,a1,b1,c1;
    a=n%10;
    b=(n/10)%10;
    c=n/100;
    a1=m%10;
    b1=(m/10)%10;
    c1=m/100;
    if(fun(n)&&fun(m)&&a!=a1&&a!=b1&&a!=c1&&b!=a1&&b!=b1&&b!=c1&&c!=a1&&c!=b1&&c!=c1)
        return true;
    else
        return false;
}

int main()

 {
    int i;
    for (i=100;i<1000;i++)
    {
        if(fun(i))
        {
            int m=2*i;
            if(fun((m))&&fun1(i,m)&&m<1000)
            {
                int n = 3*i;
                if(fun(n)&&fun1(i,n)&&fun1(m,n)&&n<1000)
                {
                    printf("%d\n",i);

                }
            }
        }
    }
    return 0;
}
2011-04-24 20:50
快速回复:(要求指针-未解决)求出所有这样的三位整数,它的2倍3倍仍然是三位整数
数据加载中...
 
   



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

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