вторник, 27 марта 2012 г.

Задача про расписание: решение Ани

Как всегда, Аня решила))), как всегда, Аня извиняется, что сделала только 5(!) пунктов из 8-ми, как всегда, блог делает проблемы с выкладкой длинного кода.
Как всегда -- Аня молодец, как всегда, мне трудно понять, за что ты извиняешься)))), ну, а коды я попробую выложить по частям. Если по частям не получится, то все пусть знают, что Аня задачу решила!

Вот код главного метода:
--------
import java.util.*;
class rasp
{
 static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{
 int sum=0, ko=0;
 int []mas=new int [6];
int [][]a=new int [6][];
for (int i=0;i<6;i++)
{
int k=4+(int)(7*Math.random());
a[i]=new int [k];
for (int j=0;j<k;j++)
 a[i][j]=0+(int)(7*Math.random());
System.out.println(Arrays.toString(a[i]));
}
int les=count(a);
System.out.println(les+" часов в неделю");
System.out.println(les/6+" среднее количество уроков в день");
for (int i=0;i<6;i++)
{
 int h=count0(a[i]);
 sum=sum+h;
 if (h==0)
 { mas[ko]=i;
   ko++;  }
}
 System.out.println(sum+" окон в неделю");
System.out.print("Уроков больше средненедельного в ");
 for (int i=0;i<6;i++)
 count1 (a[i], les/6, i);
 System.out.println();
 System.out.println("Чаще всего проходит урок номер "+tm(a));
}
-------

6 комментариев:

  1. static int count (int [][] b)
    {
    int n=0;
    for (int i=0;i<6;i++)
    {
    for (int j=0;j<b[i].length;j++)
    {
    if (b[i][j]!=0) n++;
    }}
    return n;
    }

    ОтветитьУдалить
  2. static int count0 (int[]c)
    {
    int n=0;
    for (int j=0;j<c.length;j++)
    { if (c[j]==0) n++;}
    return n;
    }

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. static void count1(int [] d, int sr, int n)
    {
    int s=0;
    for (int i=0;isr)
    System.out.print (n+1+" день ");
    }

    ОтветитьУдалить
  5. static int tm (int [][] e)
    {
    int max=0, n=0;
    int [][]mas=new int [2][6];
    for (int k=1;k<7;k++)
    mas[0][k-1]=k;
    for (int k=0;k<6;k++)
    {
    for (int i=0;i<e.length;i++)
    {
    for (int j=0;j<e[i].length;j++)
    {if (e[i][j]==mas[0][k]) mas[1][k]++;}
    }
    }
    for (int k=0;k<6;k++)
    { max=Math.max(mas[1][k],max);
    if (mas[1][k]==max) n=k; }
    return n+1;
    }
    }

    ОтветитьУдалить
  6. Ну вот, кажется удалось выложить все Анино решение, хотя и по частям.
    У меня есть несколько замечаний к решению, о них поговорим сегодня на нашем интернет-занятии

    ОтветитьУдалить