| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1879 人关注过本帖
标题:c语言新手编程错误求解
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
回复 9楼 头晕了

重剑无锋,大巧不工
2014-03-11 19:00
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:3 
这事儿属于是细节决定成败。。。
2014-03-11 20:02
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
int i,a[3],A=0,B=0,C=0,D=0,n,j,t;
scanf("%d%d%d%d",&n,&a[0],&a[1],&a[2]);
for(i=0;i<3;i++)

 for(j=0;j<2-i;j++)
     if(a[j]>a[j+1])
     {
     t=a[j];
     a[j]=a[j+1];
     a[j+1]=t;
     }

for(i=1;i<=a[0]*n;i++)
{if(i%a[0]==0&&i%a[1]==0&&i%a[2]==0)
{  D+=2;
   continue;}
  if(i%a[0]==0&&i%a[1]==0)
      A++;
  if(i%a[1]==0&&i%a[2]==0)
      B++;
  if(i%a[0]==0&&i%a[2]==0)
      C++;
}
for(j=i;j<=a[1]*n;j++)
  if(j%a[1]==0&&j%a[2]==0)
   A++;
  printf("%d",3*n-A-B-C-D);
return 0;
}

刚才上了会自习,回来看了看,这个和那个最小公倍数有点相似,但是我算了一下,应该是从1开始的,不包括0。就是开始不是一起放的。贴上我的代码,请各位高手指正。

。。。。。。。。。。。
2014-03-11 21:56
头晕了
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-3-11
收藏
得分:0 
回复 13楼 ljx小子
/*你提供的那个代码系统判定有些问题,你看下下面这个*/
#include<stdio.h>
int main()
{
    int n,a,b,c,t,y=1;
    scanf("%d%d%d%d",&n,&a,&b,&c);
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    if(b>c)
    {
        t=c;
        c=b;
        b=t;
    }
    if(c<a)
    {
        t=a;
        a=c;
        c=t;
    }
    for(t=0;t<(n-1)*c;t++)
    {
        if(t%a==0&&t<=(n-1)*a)
        {
            y++;
        continue;
        }
        if(t%b==0&&t<=(n-1)*b)
        {
            y++;
        continue;
        }
        if(t%c==0)
            y++;
    }
    printf("%d\n",y);
    return 0;
}
2014-03-12 22:19
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:3 
回复 14楼 头晕了
你这个代码是错的, 13楼的代码是没有考虑a, b, c等于0的情况还是其它问题? 题目的输入有没有要求限制?
我在你另外那个贴回复的代码你试一下, 看有没有问题.
2014-03-13 11:06
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:0 
不好意思,看错了,,题目中有同时开始放,那么就应该是从0开始的
我那段代码你把这里改成
for(i=0;i<=a[0]*(n-1);i++)//这里从0开始到(n-1)
{if(i%a[0]==0&&i%a[1]==0&&i%a[2]==0)
{  D+=2;
   continue;}
  if(i%a[0]==0&&i%a[1]==0)
      A++;
  if(i%a[1]==0&&i%a[2]==0)
      B++;
  if(i%a[0]==0&&i%a[2]==0)
      C++;
}
for(j=i;j<=a[1]*(n-1);j++)//这里到(n-1)
  if(j%a[1]==0&&j%a[2]==0)
   A++;
  printf("%d",3*n-A-B-C-D);

你的代码有一点问题:y是从0开始的然后后来的循环
for(t=0;t<(n-1)*c;t++)
这里改为t<=(n-1)*c

。。。。。。。。。。。
2014-03-13 15:39
houpanpan
Rank: 2
等 级:论坛游民
帖 子:3
专家分:23
注 册:2011-8-31
收藏
得分:3 
A      B     C
0      0     0
1a     1b    1c
2a     2b    2c
3a     3b    3c
.       .     .
.       .     .
(n-1)a(n-1)b(n-1)c
总声响为 3n
把 A组数据和B,C组分别比较,相同
3n--,并删除B,C组相同数据
B组和C组剩余数据比较,相同
3n--
2014-03-13 17:44
快速回复:c语言新手编程错误求解
数据加载中...
 
   



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

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