| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 825 人关注过本帖
标题:我刚刚学面向对象,不知道如何用循环使一串数据连接起来,希望路过的朋友帮 ...
只看楼主 加入收藏
黄辉
Rank: 4
等 级:业余侠客
帖 子:106
专家分:255
注 册:2013-4-28
结帖率:100%
收藏
已结贴  问题点数:35 回复次数:6 
我刚刚学面向对象,不知道如何用循环使一串数据连接起来,希望路过的朋友帮帮忙!!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    public class GetBestPosition
    {
        public int sum;
        public void BestPosition(int number, out int[] position)
        {
            int i;
            int j = 0;
            int flat = 0;
         
            position = new int[number+1];
         
            for (i =1; i <= number; i++)
            {
                position[i] = 1;//该位置的没有跳水

            }

            for (i = 1; i <=sum + 1; i++)
            {
                if (i == sum+1)   //当人数超过人数,初始化为1
                {
                    i = 1;
                }
                for (i = 1; i <= number; i++)
                {
                    if (position[i] == 1)
                    {
                        flat += position[i];

                        if (flat  == 7)  //满足条件的跳水
                        {
                            j++;
                            position[i] = 0;  // position1[i] = 0表示该位置上跳水,flag初始化
                        
                            flat = 0;
                        }
                        if (j == number)//j来控制循环

                            break;
                    }
                }
            }
        }

    }
    class Program
    {
        static void Main(string[] args)
        {

            int number;
            int i;
        
            GetBestPosition p = new GetBestPosition();
            Console.Write("请输入总人数:");
            number =Convert .ToInt32 ( Console.ReadLine());

            //int[] position1=new int[number];
            int[] position ;

            p.BestPosition(number, out position);

            Console.Write("跳水的顺序:");
            for (i =1; i < number+1; i++)
            {
                if (position[i] == 0)
                {

                    Console.Write( i+"  ");
                }
            }
           


        }
    }
}
我用了很多的方法,还是无法将后面的数和前面的连接起来,请路过的大神帮帮忙啊!!!正在迷茫中的小孩子。。。。帮帮忙。。。。
搜索更多相关主题的帖子: position public number 
2013-05-19 13:51
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:35 
先不说连起来的问题,position数组里面如果只存放0或1的话,是没法得出顺序的
就假设2个人跳水,初始position[0] = 1,position[1] = 1
然后两个人都跳了水,这时position[0] = 0,position[1] = 0
你可以知道是哪个人先跳吗
2013-05-19 14:21
黄辉
Rank: 4
等 级:业余侠客
帖 子:106
专家分:255
注 册:2013-4-28
收藏
得分:0 
那要怎么写呢????不懂!!

你不勇敢,谁替你坚强。。。
2013-05-19 15:11
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
2013-05-20 03:16
黄辉
Rank: 4
等 级:业余侠客
帖 子:106
专家分:255
注 册:2013-4-28
收藏
得分:0 
谢谢版主,但是有一些不太懂!
例如
  Array.Copy(temp, 7, temp1, 0, temp.Length - 7);
  Array.Copy(temp, 0, temp1, temp.Length - 7, 6);
他的意思是将后面的复制给前面的吗??

你不勇敢,谁替你坚强。。。
2013-05-20 08:14
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
比如有一个数组temp
temp[0] = 1
temp[1] = 2
temp[2] = 3
temp[3] = 4
temp[4] = 5
temp[5] = 6
temp[6] = 7
temp[7] = 8
temp[8] = 9
temp[9] = 10
,也就是总共10个人跳水
现在7号已跳水,那么第8号就是下一次的第一个人,
Array.Copy(temp, 7, temp1, 0, temp.Length - 7);
这是把temp数组的值,复制到另一个temp1数组
从temp数组的下标7开始复制,复制到temp1的下标0为起始位置,复制的长度是10 - 7 = 3,
相当于
temp1[0] = temp[7]
temp1[1] = temp[8]
temp1[2] = temp[9]
这样就把7后面的数放到了新数组的前面,
 Array.Copy(temp, 0, temp1, temp.Length - 7, 6);
这就把7前面的数,接着放到新数组里面去,也就相当于
temp1[3] = temp[0]
temp1[4] = temp[1]
......
这样就把数组后面跟前面接起来了
2013-05-20 17:49
黄辉
Rank: 4
等 级:业余侠客
帖 子:106
专家分:255
注 册:2013-4-28
收藏
得分:0 
嗯嗯。。。谢谢版主。。。

你不勇敢,谁替你坚强。。。
2013-05-20 18:47
快速回复:我刚刚学面向对象,不知道如何用循环使一串数据连接起来,希望路过的朋 ...
数据加载中...
 
   



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

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