| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:程序能运行,但是结果觉得不对,求高手帮下忙!!
只看楼主 加入收藏
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
收藏
已结贴  问题点数:5 回复次数:8 
程序能运行,但是结果觉得不对,求高手帮下忙!!

假设有两种微生物 X 和 Y

    X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

    一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

    现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

    如果X=10,Y=90 呢?

    本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
#include <stdio.h>
main()
{
    int x,y,i;
    printf("please enter two numbers:");
    scanf("%d %d",&x,&y);
     for(i=1;i<=60;i++)
       {
           y=y-x;
           if(i%3==0&&i%2!=0)
             {
                x=x*2;
                y=y-x/2;
              }
            if(i%2==0&&i%3!=0)
              {
                  y=y*2;
               }
            if(i%2==0&&i%3==0)
               {
                  x=x*2;
                  y=y*2;
                  y=y-x/2;
                }
        }
         printf("%d",y);
}
搜索更多相关主题的帖子: 分裂 include numbers please 
2013-01-03 22:03
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:1 
程序代码:
#include <stdio.h>

int main(void)
{
    int x = 0;
    int x_old = 0;
    int new_x = 0;
    int y = 0;
    int i = 0;

    printf("X细胞初始化数量:");
    scanf("%d",&x);

    x_old = x;
    printf("Y细胞初始化数量:");
    scanf("%d",&y);

    for(i = 1; i <= 60; i++)
    {
        if(i % 3 == 0 && i != 1)
        {
            y -= x ;       /* 因为每半分钟新生细胞将吃掉y细胞,而y细胞繁殖至少需要1分钟,
                          所以x会先吃掉y y再繁殖 */
            new_x = x - x_old;     /* 已有细胞减去开始时不会吃Y细胞的X细胞,得到其后繁殖的但不包括这次
                                     繁殖的细胞 */
            x *= 2;   /* 繁殖x细胞 */
        }

        if(i % 2 == 0 && i != 1)
            y = y * 2 - new_x;   /* 因为x在出生半分钟后吃了一次,于是下一次是在y繁殖后半分钟
                                   于是y先繁殖,再减去x以前繁殖的新细胞 */
    }
    printf("\n\n还剩 %d 个Y细胞\n已有 %d 个X细胞\n\n", y, x);
    return 0;
}

我这里把一开始的x细胞设为不会吃掉y细胞,也就是开始初始化的x细胞不会吃y
其后繁殖的才会吃,如果题目不是我理解的这样改一改代码就行了

I have not failed completely
2013-01-03 22:45
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
你写的貌似有问题吧,你没好好看题
2013-01-03 23:06
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
有没有标准答案啊...
就是当x = 10 , y = 89时最后y会有几个,把这答案写出来先啊...

I have not failed completely
2013-01-04 13:01
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:1 
哥哥  蓝桥杯的题目  告诉你一个方法  每半分钟 当一次

喜欢睡觉 却经常熬夜
2013-01-04 13:09
qingcong33
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:6
帖 子:47
专家分:64
注 册:2012-12-13
收藏
得分:1 
/*假设有两种微生物 X 和 Y

    X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

    一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

    现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

    如果X=10,Y=90 呢?

    本题的要求就是写出这两种初始条件下,60分钟后Y的数目。*/
#include <stdio.h>
void main()
{
   int x,y,i;
   printf("请输入X的值:n");
   scanf("%d",&x);
   printf("请输入Y的值:n");
   scanf("%d",&y);
   for (i=0;i<10;i++)
  {
    y=y-x;
    y=y-x;
    y=2*y;
    y=y-x;
    x=2*x;
    y=y-x;
    y=2*y;
    y=y-x;
    y=y-x;
    y=2*y;
    x=2*x;
   }

   printf("Y=%dn X=%dn",y,x);

}
应该是这样的!
2013-01-04 21:04
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
额,原来题目的意思是这样的啊...

I have not failed completely
2013-01-04 22:40
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
1 #include <iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     int x=10,y=90;
 7     int time=60,k;
 8     for ( k=1;k<=time;k++ )
 9     {
10         y -= x ;
11         if ( k%2==0 ) y *= 2;
12         if ( k%3==0 ) x *= 2;
13 //        printf("%dtime:\tx=%d\ty=%d\n",k,x,y);
14     }
15     printf("y = %d\n",y);
16 }

我在网上看到这样写的不知道对不对
2013-01-04 23:35
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
收藏
得分:1 
以下是引用qingcong33在2013-1-4 21:04:25的发言:

/*假设有两种微生物 X 和 Y

    X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

    一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

    现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

    如果X=10,Y=90 呢?

    本题的要求就是写出这两种初始条件下,60分钟后Y的数目。*/
#include
void main()
{
   int x,y,i;
   printf("请输入X的值:n");
   scanf("%d",&x);
   printf("请输入Y的值:n");
   scanf("%d",&y);
   for (i=0;i<10;i++)
  {
    y=y-x;
    y=y-x;
    y=2*y;
    y=y-x;
    x=2*x;
    y=y-x;
    y=2*y;
    y=y-x;
    y=y-x;
    y=2*y;
    x=2*x;
   }

   printf("Y=%dn X=%dn",y,x);

}
应该是这样的!
红色部分是不是要改成y=y-x/2???另外~你的结果是多少??

新手发言,请多指教。
2013-01-04 23:36
快速回复:程序能运行,但是结果觉得不对,求高手帮下忙!!
数据加载中...
 
   



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

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