Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив для подведения итогов опроса 
:(
    Опции темы
ArniLand
Дата 2.11.2010, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Разбираюсь с массивами на джаве, вот перевожу пример из книги по Си на Джаву. Условия задачи сорок студентов попросили оценить качество питания в студенческой столовой по шкале от 1 до 10. Поместите сорок ответов в целочисленный массив и определите итоговый результат опроса. Вот что я сделал, но при этом выводиться странниц результат
Код

public static void main(String[] args) {
        int answer;
        int rating;

        int frequency[] = new int[11];
        for (int i = 0;  i < 11; i++){
            frequency[i] = 0;
        }

        int responses[] = {1, 2, 6, 4, 8, 5, 9, 7, 8,
        10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6,
        5, 6, 7, 5, 6, 4, 8, 6, 8, 10};

        for (answer = 0; answer < responses.length; answer++){
            ++frequency [ responses [answer]];
        }
        for (rating = 1; rating < frequency.length; rating++) {
            System.out.println("" + rating );
            System.out.println(""+ frequency[rating]);
        }

    }

результат программы
1
2
2
2
3
2
4
2
5
5
6
11
7
5
8
7
9
1
10
3

Это сообщение отредактировал(а) ArniLand - 2.11.2010, 00:29
PM MAIL   Вверх
jGorets
Дата 2.11.2010, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.7.2010

Репутация: нет
Всего: нет



почему странный? вроде все нормально - что просишь - то и выводит, попробуй перед тем как разбераться с массивами разобраться с циклами )
Цитата

 и определите итоговый результат опроса.

а вот ето как? я думал надо все результаты сложить и на сумму разделить... или? 










0

Добавлено через 9 минут и 55 секунд
Код

public static void main(String[] args) {
        int answer;   // создал 2 переменные типа инт
        int rating;
        int frequency[] = new int[11]; // создал пустой массив из 12 элементов
        for (int i = 0;  i < 11; i++){      //  занулил его
            frequency[i] = 0;
        }
        int responses[] = {1, 2, 6, 4, 8, 5, 9, 7, 8,
        10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6,
        5, 6, 7, 5, 6, 4, 8, 6, 8, 10};   // создал массив с задаными элементами 
        for (answer = 0; answer < responses.length; answer++){
            ++frequency [ responses [answer]];
        }   // перезатер свой массив просто последовательность, причем сначало значение инкрементировал, а потом записывал
        for (rating = 1; rating < frequency.length; rating++) {
  
            System.out.println(rating + " "+ frequency[rating]); // здесь уже считаешь от 1 до 11 и выводишь, причем вывод нагляднее смотрелся бы именно так 
        }
    }

PM MAIL   Вверх
nc30
Дата 2.11.2010, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: 5
Всего: 8



Цитата(jGorets @ 2.11.2010,  00:59)
Код

        int frequency[] = new int[11]; // создал пустой массив из 12 элементов
        for (int i = 0;  i < 11; i++){      //  занулил его
            frequency[i] = 0;
        }

Ничего "занулять" не нужно. В Java все элементы массива чисел инициализируются нулями при его создании  smile 


Код

public static void main(String[] args) {

    int responses[] = {
        1,  2,  6,  4,  8,  5,  9,  7,  8, 10,
        1,  6,  3,  8,  6, 10,  3,  8,  2,  7,
        6,  5,  7,  6,  8,  6,  7,  5,  6,  6,
        5,  6,  7,  5,  6,  4,  8,  6,  8, 10
    };

    int frequency[] = new int[10];

    for (int i = 0; i < responses.length; i++) {
        ++frequency[responses[i]-1];
    }

    for (int rating = 1; rating <= frequency.length; rating++) {
        System.out.print("Rating [" + rating + "]: ");
        System.out.println(frequency[rating-1]);
    }
}

Для "красивости" вывода можно изменить последний цикл таким образом:
Код

        for (int rating = 1; rating <= frequency.length; rating++) {
            System.out.print("Rating [" + rating + "]: ");
            System.out.println(frequency[rating-1] + " voice"
                    + (frequency[rating-1] == 1 ? "" : "s"));
        }

В общем, разбирайтесь, пробуйте.

Это сообщение отредактировал(а) nc30 - 2.11.2010, 14:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.