| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:高手帮我看下这个程序,谢了,我是菜鸟..
只看楼主 加入收藏
换成电脑
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-6-11
收藏
 问题点数:0 回复次数:1 
高手帮我看下这个程序,谢了,我是菜鸟..
原题:
    10个小孩围一圈.老师给10个小孩依次分别给 10块.2块.8块.22块.16块.4块.10块.6块.14块.20块糖.然后所有的孩子同时将手里的糖分一半给右边的孩子(第一个给第二个这样的顺序)糖块为奇数的可以向老师要一块.经过这样几次后,大家手中的糖块一样多?每人几块?



我的解答是:

main()
{
   int a[10]={10,2,8,22,16,4,10,6,14,20}
   int i,j,n;
   for(j=0;a[j]!=a[j+1];j++)
       for(i=0;i<10;i++)
           if(a[i]%2)
              a[i]=a[i+1];
           a[i+1]=a[i+1]+a[i]/2;

}

我就只会编这些了,麻烦哪个大哥帮我修改下,小弟在这里谢过了...
搜索更多相关主题的帖子: 糖块 int 
2008-06-17 15:08
weiweigege
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-6-15
收藏
得分:0 
#include <stdio.h>
#define BOOL    int
#define TRUE    1
#define FALSE    0

void give(int a[]);
BOOL check(int a[]);

int main(void)
{
    int a[10] = {10, 2, 8, 22, 16, 4, 10, 6, 14, 20};
    int count = 0;
    while(!check(a))
    {
        give(a);
        count++;
    }
    printf("经过 %d 次交换后,大家手里各有 %d 块糖。", count, a[0]);
    return 0;
}

void give(int a[])
{
    int i, b[10];
    for(i = 0; i < 10; i++)
    {
        if(1 == a[i] % 2)
        {
            b[(i + 1) % 10] = (a[i] + 1) / 2;
            a[i] = (a[i] + 1) / 2;
        }
        else
        {
            b[(i + 1) % 10] = a[i] / 2;
            a[i] = a[i] / 2;
        }
    }
    for(i = 0; i < 10; i++)
    {
        a[i] += b[i];
    }
}

BOOL check(int a[])
{
    int i;
    for(i = 0; i < 9; i++)
    {
        if(a[i] != a[i + 1])
            return FALSE;
    }
    return TRUE;
}
2008-06-18 14:07
快速回复:高手帮我看下这个程序,谢了,我是菜鸟..
数据加载中...
 
   



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

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