用c语言或java语言写一个程序要求如下:
定义一个数组,数组的长度为100。它的值是这样的。
1,2,3...12,12,11,10...1,1,2,3...12,12,11,10...

解决方案 »

  1.   


    int a[]=new int[100];
    for(int i=0;i<a.length;i++){
    int n=i/12;
    a[i]=n%2==0?i%12+1:12-i%12;
    }
      

  2.   


    public class Test {
            
        public static void main(String[] args) {
           int a[]=new int[100];
           int i=0,j=12,n=0;
           for(i=0;i<a.length;i++){
               a[i]=i+1-12*2*n;
               if((i+1)%12==0){
                   for(j=12;j>=1;j--){
                      a[++i]=j;
                      if((i+1)%12==0){
                       n++;
                       break;
                      }
                      
                   }
               }
           }
           for(i=0;i<a.length;i++)
              System.out.println(a[i]);
        }
    }
      

  3.   

    for(int i=0, n=1,director=1; i<len;i++){
    if(director == 1){
    ary[i]= director*n;
    n++;
    if(n>12){
    director = -1;
    n=12;
    }
    }else{
    ary[i]= n;
    n--;
    if(n==0){
    n=1;
    director = 1;
    }
    }
    }
      

  4.   

    1楼真强! I  服了 you!
      

  5.   

    1楼的NB,学习
    class Algorithm
    {
    public static int[] algorithm(int[] array) {
    //整整的12一圈次数
    int n = array.length / 12;
    //剩余不足12一圈的个数
    int m = array.length % 12;
    //数组下标
    int index = 0; for(int i=0;i<n;i++) {
    //如果12一圈的次数是奇数,从1-12
    if(i % 2 == 0) {
    for(int j=1;j<=12;j++) {
    array[index++] = j;
    }
    }
    //如果12一圈的次数是偶数,从12-1
    else {
    for(int j=12;j>=1;j--) {
    array[index++] = j;
    }
    }
    }

    //剩下不够12一圈的数
    //上面的最后一圈是从12-1
    if(array[--index] == 1) {
    for(int i=1;i<=m;i++) {
    array[++index] = i;
    }
    }
    //上面的最后一圈是1-12
    else {
    for(int i=12;i>=1;i--) {
    array[++index] = i;
    }
    } return array;
    } public static void main(String[] args) 
    {
    int[] array = new int[100]; 
    algorithm(array);
    System.out.println(Arrays.toString(array));
    }
    }
      

  6.   

    public static void main(String[] args) {
    int a[] = new int[100];
    for (int i = 0; i < 100; i++) {
    int t = i / 12;
    if (t % 2 == 0)
    a[i] = 1 + i % 12;
    else
    a[i] = 12 - (i % 12);
    System.out.println(a[i]);
    }
    }
      

  7.   

    这样也能用..但你觉得和1L比哪个好?int[] a={1,2,3,4,5,6,7,8,9,10,11,12,12,11,10,9,8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8,9,10,11,12,12,11,10,9,8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8,9,10,11,12,12,11,10,9,8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8,9,10,11,12,12,11,10,9,8,7,6,5,4,3,2,1,1,2,3,4};
      

  8.   

    int [] a=new int[100]; 
    int i=0;
    for(int j=0;j<100;j++){
      a[j]=(j/12)%2==0?++i:i--;
    }
    看过一楼的之后才想出来的                    
      

  9.   

    public static void main(String[] args)
      {
       int[] array=new int[100];
       for (i=0;i<array.length;i++)
         {
          if(i<12)
             array[i]=i;
          else
             array[i]=i%12
          System.out.println(array[i]);
         }
       }     
      

  10.   

    楼上的代码是错的,小生在这贻笑大方了。
    有很多朋友说一楼牛人的代码看不懂,小生在这不自量力来解释一下
    首先,用n=i/12来判断数组中的元素有12来量是第几圈
               0~11为0圈
             12~23为1圈
              ......其次,要明白i%12+1是和12-i%12是和n的奇偶有关系的用n%2==0来判断
    当为偶数圈的时候(n%2==0)
        数组中元素的值应该递增,用第一个式子表示(i%12+1)
    当为奇数圈的时候(n%2不等于0)
        数组中的元素应该递减,用第二个式子表示(12-i%12)
      

  11.   

    其实就是两个情况:把每12个作为一组:
    单行组 1 2 3...12
    偶行组 12 11... 1(i/12)%2 判断i在单行组还是偶行组如果是单行组: i%12+1
    如果是双行组: 12-i%12 (相当于一个求补的操作)不知道说的对不对
      

  12.   

    我看到有人说程序是拿来用的,不是拿来显示技术的,哎,我就辛苦了5分钟,思考了4分半,杀死无数脑细胞,然后再花半分钟修改了一下一楼的程序,给那个所谓拿来用的朋友用吧
    int a[]=new int[100];
    for(int i=0;i<a.length;i++){
    int n=i/12;
    a[i]=(i%12+1)*(1-(n%2)*2)+(n%2)*(13);
    }这个应该没有技术含量了吧?纯粹的数学表达式,通俗易懂,小学数学竞赛(如果他们知道模操作的话)应该比这个难吧!~