| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1762 人关注过本帖
标题:学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?
取消只看楼主 加入收藏
Emmaer123
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2019-9-20
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?
#include<stdio.h>
int main()
{
    int a,b,c,i,r=1,x,y,z,p,k,m[10];
    int t=0,q=0;
    scanf("%d%d%d",&x,&y,&z);
   
    for(i=1;i<978;i++)
    {
        a=x*i;b=y*i;c=z*i;
        m[0]=a%10;m[1]=a/10%10;m[2]=a/100;m[3]=b%10;m[4]=b/10%10;m[5]=b/100;m[6]=c%10;m[7]=c/10%10;m[8]=c/100;
        
        for(int j=0;j<9;j++)  
           {   if(  m[j]==0 )    {q=1;}    }   //第一次筛选:m数组存放三个三位数的数字,检查是否有0   
           
        if(q==1)  continue;
        if(q==0)       //第二次筛选:没有零的情况下,检查九个数字中有无重复的数字
        {
            for(p=0;p<8;p++)
             {
                for(k=p+1;k<9;k++)
                 {
                   if(m[k]==m[p])  { r=0;} //有重复的数字,那么r=0
                 }
            }
            
            if(r==0)  continue; //如果r=0进行下一轮重复
            else       { t=1;printf("%d  %d  %d\n",a,b,c); }  // 有符合标准的三个数,t=1
       }
    }
   
    if(t==0) printf("No!!!");//最后t=0说明一直没有符合标准的三个数
    return 0;
}

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
输入格式      
三个数,A B C

输出格式
若干行,每行3个数字。按照每行第一个数字升序排列。

输入输出样例
输入 #1
1 2 3

输出 #1
192 384 576
219 438 657
273 546 819
327 654 981


[此贴子已经被作者于2019-11-11 18:22编辑过]

搜索更多相关主题的帖子: 个数 输出 for 位数 数字 
2019-11-10 20:47
Emmaer123
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2019-9-20
收藏
得分:0 
回复 4楼 bcbbcclbbc
谢谢你花费时间指正我代码的错误,我根据指出的错误作了改正,并附了一些注释
#include<stdio.h>
int main()
{
    int a,b,c,i,x,y,z,p,k,m[10];
    int t=0,q=0,r=1;
    scanf("%d%d%d",&x,&y,&z);
   
    for(i=1;i<978;i++)
    {
        a=x*i;b=y*i;c=z*i;
        m[0]=a%10;m[1]=a/10%10;m[2]=a/100;m[3]=b%10;m[4]=b/10%10;m[5]=b/100;m[6]=c%10;m[7]=c/10%10;m[8]=c/100;
        
        for(int j=0;j<9;j++)  
           {   if(  m[j]==0 )    {q=1;}    }   //第一次筛选:m数组存放三个三位数的数字,检查是否有0   
           
        if(q==1)  continue;
        if(q==0)       //第二次筛选:没有零的情况下,检查九个数字中有无重复的数字
        {
            for(p=0;p<8;p++)
             {
                for(k=p+1;k<9;k++)
                 {
                   if(m[k]==m[p])  { r=0;} //有重复的数字,那么r=0
                 }
            }
            
            if(r==0)  continue; //如果r=0进行下一轮重复
            else       { t=1;printf("%d  %d  %d\n",a,b,c); }  // 有符合标准的三个数,t=1
       }
    }
   
    if(t==0) printf("No!!!");//最后t=0说明一直没有符合标准的三个数
    return 0;
}



[此贴子已经被作者于2019-11-12 12:21编辑过]

2019-11-11 18:22
Emmaer123
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2019-9-20
收藏
得分:0 
回复 6楼 bcbbcclbbc
谢谢,我运行您改正过的代码,结果是正确的,感谢抱拳
2019-11-12 12:14
快速回复:学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?
数据加载中...
 
   



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

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