2015-06-25 2 views
-6

Я застрял в этом сложном вопросе. Не могли бы вы помочь мне в решении этого вопроса? Наряду с кодировкой, которую вы предоставляете, также давайте простое и понятное объяснение; Я имею в виду, как вы это сделали (логики), объясните, что вы сделали на каждом шаге и почему. Это очень помогло бы мне повысить навыки и возможности кодирования.C - подсчет чисел {создание программы}

В классе есть некоторые неизвестные нет. из студентов. Недавно они сдавали экзамен, и сегодня учитель отдает свои копии экзаменов. Учитель хочет найти номер, который будет получен большинством учащихся , и количество студентов, которые получили этот номер.

  • вход Спецификация : Первая строка содержит положительное целое число Т (T < = 100)), количество теста. В ваших линиях кодирования первое целое число будет N - количество учеников. После этого последуют N целых чисел, которые являются отметками учащихся . Студент получит отметку от 0 до 100 включительно.

  • Выход Спецификация : Для каждого случая, напечатать номер дела, то два целых числа, где первый из них число с максимальной частотой, а затем частоту этого меток. Если возможно несколько таких выходов, выведите тот, у которого максимальная отметка.

я пытался что-то ...... неэффективен хотя ..

#include <stdio.h> 
#include <conio.h> 
#include <dos.h> 

int main() 
{ 
int stud_no; 
clrscr(); 

printf("\nEnter the total no. of students:"); 
scanf("%d", &stud_no); 
printf("%d", stud_no); 

// Can't go on more 
/* Need Help*/ 

getchar(); 
return 0; 
} 
+0

Добро пожаловать в переполнение стека! Пройдите [tour] (http://stackoverflow.com/tour) и прочитайте [Как спросить] (http://stackoverflow.com/help/how-to-ask), чтобы узнать, чего мы ожидаем от вопросов здесь. Имейте в виду, что мы не предоставляем службу кодирования _from-scratch_. Пожалуйста, покажите нам, что вы уже пробовали, как это провалилось, и мы могли бы помочь. :-) –

+2

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не попытка домашней работы. –

+0

Это один вопрос о NHSPC 2015 в Бангладеш. Не думайте, что я обманываю, это уже после конкурса. Просто не могу! –

ответ

0
#include <stdio.h> 

int main(void){ 
    int T; 

    scanf("%d", &T); 
    for(int i = 1; i <= T; ++i){ 
     int marks[101] = {0}; 
     int max = -1; 
     int n, mark; 
     scanf("%d", &n); 
     for(int j = 0; j < n; ++j){ 
      scanf("%d", &mark); 
      if(mark > max) 
       max = mark; 
      ++marks[mark]; 
     } 
     printf("case %d : max = %d, frequency = %d\n", i, max, marks[max]); 
    } 

    getchar(); 
    return 0; 
} 
+0

[DEMO] (http://ideone.com/tNbwPq) – BLUEPIXY

+0

Спасибо.Вы решили проблему, правильно. Я чрезвычайно благодарен вам. –

3

Если я понимаю требования, ваш вход выглядит примерно так:

3 
5 90 91 75 34 78 
4 20 20 45 78 
6 87 44 73 91 91 90 

Вы имеют 3 тестовых примера: тестовый случай 1 дает баллы для 5 студентов, тестовый пример 2 дает баллы для 4 студентов, а тестовый пример 3 дает баллы для 6 студентов.

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

Test case 1: max score = 91, number of students = 1 out of 5 
Test case 2: max score = 78, number of students = 1 out of 4 
Test case 3: max score = 91, number of students = 2 out of 6 

или что-то вдоль этих линий.

Таким образом, вы должны думать в терминах следующих операций:

  1. Получить количество тестов
  2. Для каждого теста, получить количество баллов
  3. Прочитайте оценки
  4. Определите максимальный результат, и количество баллов, которое будет отображаться
  5. Распечатать результат для этого теста
  6. Вернуться к 2

Для этого не нужно использовать какие-либо массивы; вам нужно только отслеживать максимальный балл и количество раз, когда вы видели его для любого заданного теста.

Теперь, если у вас есть особые проблемы с любым из вышеперечисленных шагов, пожалуйста, спросите, и мы сделаем все возможное, чтобы направить вас в правильном направлении. Но никто не собирается писать ваш код для вас. Вы должны показать нам, что вы сделали.

+0

Я показал свою кодировку. –

+1

@SohaFarhinPine - да, мы это заметили. Давайте просто скажем, что это меньше, чем полное ... :( –

+0

@SohaFarhinPine: Вам нужно будет дать нам больше, чем «Невозможно продолжать, нужна помощь». Что конкретно * вам нужна помощь? Какую часть проблемы вы не понимаете? Это вопрос структурирования кода? Это вопрос синтаксиса C? –

Смежные вопросы